Lambda表达式总结
- 接口为函数式接口(只有一个实现的方法)
- lambda表达式只能有一行代码实现的情况下才能简化为一行,如果有多行,那么就需要用{}包裹
- 参数可以去掉参数类型(统一去掉,或者不去掉)
函数式接口:
// 只有一个实现方法
interface ILike() {
void lambda();
}
示例代码(lambda表达式实际是匿名内部类的一种写法):
public class TestLambda {
// 2.静态内部类
static class Like2 implements ILike {
public void lambda() {
System.out.println("static class");
}
}
public static void main(String[] args) {
// 3.局部内部类
class Like3 implements ILike {
public voide lambda() {
System.out.println("local class");
}
}
// 4.匿名内部类
ILike anonymousLike = new ILike {
public void lambda() {
System.out.println("anonymous class");
}
}
// 5.lambda表达式
ILike lambdaLike = ()-> {
System.out.println("love lambda!");
};
}
}
// 内部类
class Like implements ILike {
public void lambda() {
System.out.print("Inner class");
}
}
测试输出:
Like like = new Like();
like.lambda();
Like2 like2 = new Like2();
like2.lambda();
Like3 like3 = new Like3();
like3.lambda();
anonymousLike.lambda();
lambdaLike.lambda();
结果: