Java支持Lambda表达式始于Java8,它的出现简化了函数式接口匿名内部类的语法(注意两个条件分别为函数式接口和匿名内部类),其语法表达式如下:
([参数1],[参数2],...[参数n])- >{代码块}
如果方法没有返回值且只有一行代码,则Lambda表达式语法可以是:
([参数1],[参数2],...[参数n]) - > 单行语句
若方法有返回值且只有一行代码则Lambda表达式语法可以是:
([参数1],[参数2],...[参数n]) - >表达式
示例:
@Functioninterface
interface IComputer{
void add(int a , int b);
}
public class Test{
public static void main(String[] args){
IComputer computer = new IComputer(){
@Override
public void add(int a , int b){
System.out.println(a+b);
}
};
computer.add(1,1);
}
}
————————————————————————————————————————————————————————————————————————————
//可以写为
public class Test{
public static void main(){
ICompter computer = (int a , int b) - >{
System.out.println(a+b);
};//Lambda表达式用法
}
}
————————————————————————————————————————————————————————————————————————————
//由于方法中代码只有一行,所以还可以写作
IComputer computer = (int a , int b) -> System.out.println(a+b);
______________________________________________________________________________
//如果接口中抽象方法为
int add(int a , int b){
return a+b;
}
//那Lambda表达式还可以写作
IComputer computer = (int a , int b)-> a+b