Lambda表达式
Lambda表达式
- 函数式接口:只包含==唯一一个抽象方法==的接口
- 可以用lambda表达式创建该接口的对象
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
class MyLambda {
// 3.静态内部类
static class Like2 implements ILike {
@Override
public void lambda() {
System.out.println("I like lambda2");
}
}
public static void main(String[] args) {
ILike like = new Like();
like.lambda();
like = new Like2();
like.lambda();
// 4.局部内部类(在方法内部)
class Like3 implements ILike {
@Override
public void lambda() {
System.out.println("I like lambda3");
}
}
like = new Like3();
like.lambda();
// 5.匿名内部类,没有类的名称,必须借助接口或者父类
like = new ILike() {
@Override
public void lambda() {
System.out.println("I like lambda4");
}
};
like.lambda();
// 6.lambda
like = () -> {
System.out.println("I like lambda5");
};
like.lambda();
// 7.简化lambda 只有一行代码才行,否则就用代码块
// 若括号内有参数类型,则可以都去掉
// (int a, int b) (a,b)
like = () -> System.out.println("I like lambda6");
like.lambda();
}
}
// 1.函数式接口
interface ILike {
void lambda(); // 接口的函数都是public abstract
}
// 2.实现类
class Like implements ILike {
@Override
public void lambda() {
System.out.println("I like lambda1");
}
}
本文由作者按照 CC BY 4.0 进行授权