标签:编程思想 大括号 表示 code font 匿名方法 dso operation return
是什么?
Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。
Lambda 属于函数式编程思想,允许把函数作为一个方法的参数(函数作为参数传递进方法中)。
怎么使用?
使用前提:
Lambda 表达式的省略规则:
1 /** 2 * lambda表达式 3 */ 4 public class LambdaDemo { 5 6 final static String ST = "Hello!"; 7 String ss = "Hello!"; 8 9 public static void main(String[] args) { 10 int c = 8; 11 int d = 4; 12 // int a = 10; 不允许声明一个与局部变量同名的参数或者局部变量。 13 14 // 使实现方法可自定义 15 AddService add = (a, b) -> a + b; 16 System.out.println(c + " + " + d + " = " + add.operation(c, d)); 17 18 add = (a, b) -> a - b; 19 System.out.println(c + " - " + d + " = " + add.operation(c, d)); 20 21 add = (a, b) -> a * b; 22 System.out.println(c + " * " + d + " = " + add.operation(c, d)); 23 24 add = (a, b) -> a / b; 25 System.out.println(c + " / " + d + " = " + add.operation(c, d)); 26 27 add = (int a, int b) -> { 28 return a + b; 29 }; 30 System.out.println(c + " + " + d + " = " + add.operation(c, d)); 31 32 // 打印方法中可以获取ST,c,d 但是获取不到ss (且c,d不可更改,隐性的具有 final 的语义) 33 GreetingService gs = str -> System.out.println(ST + str); 34 gs.operation(String.valueOf(c)); 35 } 36 37 interface AddService { 38 Integer operation(int a, int b); 39 40 // 此接口要求必须是函数式接口, 但Java8 允许有一个默认实现方法 41 default int addSome(int a, int b) { 42 return a + b; 43 } 44 } 45 46 interface GreetingService { 47 void operation(String str); 48 } 49 }
有什么好处?
使用 Lambda 表达式可以使代码变的更加简洁紧凑。免去了使用匿名方法的麻烦,并且给予Java简单但是强大的函数化的编程能力。
标签:编程思想 大括号 表示 code font 匿名方法 dso operation return
原文地址:https://www.cnblogs.com/WINTER-KING/p/11602503.html