Java是一种面向对象语言,它的强大就在于其简单性和一致性,因此,Java不支持直接传递代码块,所以必须构建一个对象,这个对象的类需要有一个方法能包括所需的代码。而lambda表达式可以用一种简洁的语法定义代码块。
lambda表达式是JDK8的新增特性,可以取代大部分的匿名内部类,写出更优雅的代码,尤其在集合的遍历和其他集合的操作,可以极大地优化代码结构。lambda是Java语言最让人激动的一个变化之一。是一个可传递的代码块,可在以后执行一次或多次。
lambda表达式有三个部分:
- 一个代码块;
- 参数;
- 自由变量的值,这是指非参数而且不在代码中定义的变量。
语法形式为 () -> {},其中 () 用来描述参数列表,{} 用来描述方法体,-> 为 lambda运算符
public class Test1 {
public static void main(String[] args) {
//无参无返回
NoReturnNoParam noReturnNoParam = () -> {
System.out.println("NoReturnNoParam");
};
noReturnNoParam.method();
//一个参数无返回
NoReturnOneParam noReturnOneParam = (int a) -> {
System.out.println("NoReturnOneParam param:" + a);
};
noReturnOneParam.method(6);
//多个参数无返回
NoReturnMultiParam noReturnMultiParam = (int a, int b) -> {
System.out.println("NoReturnMultiParam param:" + "{" + a +"," + + b +"}");
};
noReturnMultiParam.