Skip to content

Commit 05a2cb8

Browse files
committed
Lambda表达式
1 parent 423f8b4 commit 05a2cb8

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

src/main/java/com/xu/java8/lambda/Lambda.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
##Lambda表达式
2-
- Lambda表达式的使用
2+
- ###Lambda表达式的使用
33

44
java8以前的字符串排列,创建一个匿名的比较器对象Comparator然后将其传递给sort方法
55
```
@@ -33,15 +33,15 @@ names2.sort(Comparator.nullsLast(String::compareTo));
3333
System.out.println(names2);
3434
##:[anna, mike, peter, xenia, null]
3535
```
36-
- 函数式接口,方法,构造器
36+
- ###函数式接口,方法,构造器
3737

3838
每一个lambda表达式都对应一个类型,通常是接口类型。而“函数式接口”是指仅仅只包含一个抽象方法的接口,
3939
每一个该类型的lambda表达式都会被匹配到这个抽象方法。
4040
因为默认方法不算抽象方法,所以你也可以给你的函数式接口添加默认方法。
4141
我们可以将lambda表达式当作任意只包含一个抽象方法的接口类型,确保你的接口一定达到这个要求,你只需要给你的接口添加 @FunctionalInterface 注解,
4242
编译器如果发现你标注了这个注解的接口有多于一个抽象方法的时候会报错的。
4343

44-
函数式接口
44+
####函数式接口
4545

4646
```
4747
@FunctionalInterface
@@ -71,7 +71,7 @@ System.out.println(names2);
7171
System.out.println(converted3);
7272
##:123
7373
```
74-
函数式方法
74+
####函数式方法
7575
```
7676
static class Something {
7777
String startsWith(String s) {
@@ -84,7 +84,7 @@ System.out.println(names2);
8484
System.out.println(converted4);
8585
##:j
8686
```
87-
函数式构造器
87+
####函数式构造器
8888
Java编译器会自动根据PersonFactory.create方法的签名来选择合适的构造函数。
8989
```
9090
public class Person {
@@ -113,7 +113,8 @@ Java编译器会自动根据PersonFactory.create方法的签名来选择合适
113113
System.out.println(person.toString());
114114
##:xuhua
115115
```
116-
- Lambda作用域
116+
- ###Lambda作用域
117+
117118
在lambda表达式中访问外层作用域和老版本的匿名对象中的方式很相似。
118119
你可以直接访问标记了final的外层局部变量,或者实例的字段以及静态变量。
119120
```

0 commit comments

Comments
 (0)