简介:
Lambda表达式(也称为闭包),java8推出的一个重要语言改变,它允许我们将函数当成参数传递给某个方法,或者 把代码本身当作数据处理:函数式开发者对其中的概念非常熟悉。作为一名java开发者,之前都是使用匿名内部类来进行替代的,代码看起来比较繁琐,如今学会使用 Lambda 表达式可以使代码变的更加简洁紧凑,何乐而不为呢。
基本语法格式:
(参数,参数,…) -> 表达式或{结果}
示例代码:
public class LambdaTest {
public static void main(String args[]) {
LambdaTest test = new LambdaTest();
// 类型声明
MathOperation addition = (int a, int b) -> a + b;
// 不用类型声明
MathOperation subtraction = (a, b) -> a - b;
// 大括号中的返回语句
MathOperation multiplication = (int a, int b) -> {
return a * b;
};
// 没有大括号及返回语句
MathOperation division = (int a, int b) -> a / b;
System.out.println("10 + 5 = " + test.operate(10, 5, addition));
System.out.println("10 - 5 = " + test.operate(10, 5, subtraction));
System.out.println("10 x 5 = " + test.operate(10, 5, multiplication));
System.out.println("10 / 5 = " + test.operate(10, 5, division));
// 不用括号
GreetingService greetService1 = message -> System.out.println("Hello " + message);
// 用括号
GreetingService greetService2 = (message) -> System.out.println("Hello " + message);
greetService1.sayMessage("Baidu");
greetService2.sayMessage("Google");
}
interface MathOperation {
int operation(int a, int b);
}
interface GreetingService {
void sayMessage(String message);
}
private int operate(int a, int b, MathOperation mathOperation) {
return mathOperation.operation(a, b);
}
}
以上只是Lambda的一些简单语法应用,如果你需要了解更多Lambda表达式的细节及理想用例,可以参考官方文档。
附上链接:点击