Lamdba表达式学习:
**特点**:只关注具体怎么做;
**优点**:匿名内部类的一种替换形式;
没有生成对象,执行速度比较快;
使用前提:
必须是函数式接口(只有一个抽象方法的接口)
Lamdba表达式常用来代替一个接口类型的匿名对象
标准格式
(Object...)->{...}
1. () 里面放参数列表
注:当参数列表只有一个时,可以同时省略括号和参数的数据类型。
无论参数有多少时,都可以同时省略所有参数的数据类型
(同时省略哦)
2. ->
3.{} 里面放方法具体的实现
注:
1).当方法有返回值时
可以同时省略{}、return、;。(需要同时省略哦)
2).当方法没有返回值时。
没有return,自然不用省略,可以省略另外两个。
自定义接口实现Lamdba:
interface In{
void show();
}
public class Demo02 {
public void add(In in,int a,int b){
}
public static void main(String[] args) {
//Lamdba表达式创建In对象
In in = ()->{
System.out.println("show方法输出,Lamdba表达式实现。");
};
in.show();
//匿名内部类创建In对象
In in2 = new In() {
@Override
public void show() {
System.out.println("show 方法输出,匿名内部类实现。");
}
};
in2.show();
}
}