- lambda表达式就是JDK1.8以后,的一种简化匿名内部类的方式。简单易学,老少皆宜。
- 注意lambda表达式只能在接口中只有一种方法的前提下使用。
interface A{
void out(int a);
}
public class testLambda {
public static void main(String[] args) {
//局部内部类
class lambda1 implements A{
@Override
public void out(int num) {
System.out.println("简单易学,老少皆宜");
}
}
//匿名内部类
A a = new A() {
@Override
public void out(int num) {
System.out.println("简单易学,老少皆宜"+num);
}
};
//lambda表达式(可以省略参数类型,直接写个b也可以,因为会自动匹配到参数类型)
//注意:只有在接口中只有一个方法的情况下,才可以使用lambda表达式。
A a1 = (int num)->{
System.out.println("简单易学,老少皆宜"+num);
};
//如果方法体内只有一行代码可以省略{};如果只有一个参数可以省略()
A a2 = num-> System.out.println("简单易学,老少皆宜"+num);
a.out(10);
a1.out(20);
a2.out(30);
}
}
简单易学,老少皆宜10
简单易学,老少皆宜20
简单易学,老少皆宜30
Process finished with exit code 0
- 我们看到这里的使用并无差别,我们看一下简化的代码
- 简化前的匿名内部类
A a = new A() {
@Override
public void out(int num) {
System.out.println("简单易学,老少皆宜"+num);
}
};
A a1 = (int num)->{
System.out.println("简单易学,老少皆宜"+num);
};
A a2 = num-> System.out.println("简单易学,老少皆宜"+num);