网站首页 > java教程 正文
引言:
Lambda表达式,用一句话来说,就是将一段代码作为变量进行处理。该特性扩展了java语言“万物皆对象”的范围,使许多原本类实现能更为优雅。
Lambda表达式理解:
一般,我们看到的Lambda表达式都如下所示:
MyInterface code=(str)->System.out.println(str);
那么,如何理解Lambda表达式呢?请看:
Lambda表达式的还原:
MyInterface code=(str)->System.out.println(str);
步骤1:加上大括号去掉箭头后(只有一行大括号可省略):
MyInterface code=(str){
System.out.println(str);
}
步骤2:加上参数类型(参数类型编译器会自行判断,被省略):
MyInterface code=(String str){
System.out.println(str);
}
步骤3:加上返回类型(返回类型编译器自行判断,被省略):
MyInterface code=void (String str){
System.out.println(str);
}
步骤4:加上函数名称(函数名称无意义,被省略):
MyInterface code=void printString(String str){
System.out.println(str);
}
步骤5:加上函数作用域(作用域无意义,被省略):
MyInterface code=public void printString(String str){
System.out.println(str);
}
功能接口:
MyInterface是功能接口(或者叫函数式接口,只有一个方法的接口),Lambda表达式就是该接口的实现,因此还必须有如下定义,注意@FunctionalInterface注解是用于标识该接口是功能接口,只能有一个方法。
@FunctionalInterface
interface MyInterface{
void printString(String str);
}
Lambda表达式的作用
1.使代码实现更加优雅简洁,如下栗子所示:
实现对比
2.可作为参数传递,简洁明了,如下栗子所示:
有如下方法:
public void strPrint(MyInterface myInterface,String str){
myInterface. printString(str);
}
那么该方法的调用对比如下:
本文暂时没有评论,来添加一个吧(●'◡'●)