lamda表达式
只包含一个抽象方法的接口:函数式接口
对于函数式接口,lamda表达式可以创建该接口的对象!
使用方法
接口定义
interface Ilove{
void love(int a);
}
//实现类
class love implement Ilove{
@override
public void love(int a){
System.out.println("I love you-->"+a);
}
}
匿名内部类与lamda实现比较
//匿名内部类实现
Ilove love=new Ilove(){
@Override
public void love(int a){
System.out.println("I love you-->"+a);
}
}
love.love();
//lamda实现
Ilove love =(int a)->{
System.out.println("I love you-->"+a);
};
lamda的简化写法
-
//简化参数 Ilove love =(a)->{ System.out.println("I love you-->"+a); }; love.love(521);
-
//简化括号 Ilove love =a->{ System.out.println("I love you-->"+a); }; love.love(521);
-
//简化花括号 Ilove love =a->System.out.println("I love you-->"+a); love.love(521);
总结
- lamda表达式只有一行的情况下才能简化花括号。
- 接口必须为函数式接口
- 多个参数时不能去掉圆括号,但可以全部去掉参数类型