mirror of
https://github.com/sjsdfg/effective-java-3rd-chinese.git
synced 2025-03-29 05:20:29 +08:00
Update 43. 方法引用优于lambda表达式.md
This commit is contained in:
parent
0b2c344a34
commit
cc47e4003f
@ -31,7 +31,7 @@ service.execute(GoshThisClassNameIsHumongous::action);
|
||||
service.execute(() -> action());
|
||||
```
|
||||
|
||||
使用方法引用的代码段既不比使用 lambda 的代码片段更短也不清晰,所以更喜欢后者。 在类似的代码行中,`Function` 接口提供了一个通用的静态工厂方法来返回标识函数 `Function.identity()`。 它通常更短,更清洁,而不使用这种方法,而是使用等效的 lambda 内联代码`:x - > x`。
|
||||
使用方法引用的代码段既不比使用 lambda 的代码片段更短也不清晰,所以更喜欢后者。 在类似的代码行中,`Function` 接口提供了一个通用的静态工厂方法来返回标识函数 `Function.identity()`。 它通常更短,更清洁,而不使用这种方法,而是使用等效的 lambda 内联代码:`x - > x`。
|
||||
|
||||
许多方法引用是指静态方法,但有四种方法没有。 等同的 Lambda 其中两个是特定(bound)和任意(unbound)对象方法引用。 在特定对象引用中,接收对象在方法引用中指定。 特定对象引用在本质上与静态引用类似:函数对象与引用的方法具有相同的参数。 在任意对象引用中,接收对象在应用函数对象时通过方法的声明参数之前的附加参数指定。 任意对象引用通常用作流管道(pipelines)中的映射和过滤方法(条目 45)。 最后,对于类和数组,有两种构造方法引用。 构造方法引用用作工厂对象。 下表总结了所有五种方法引用:
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user