Aar*_*onF 5 java lambda java-8 method-reference
假设我有一个Gizmo带有构造函数的类,它接受一个String.假设我想将a转换List<String>为a List<Gizmo>.
我可能会写:
List<String> strings = new ArrayList<>();
List<Gizmo> gizmos = strings
.stream()
.map(str -> new Gizmo(str))
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
现在,问题是IntelliJ告诉我我可以用方法引用替换lambda.事实是,我很确定方法引用不能参数.
das*_*ght 10
我认为InteliJ意味着取代
.map(str -> new Gizmo(str))
Run Code Online (Sandbox Code Playgroud)
同
.map(Gizmo::new)
Run Code Online (Sandbox Code Playgroud)
这是一个构造函数引用.见详细说明这里.
现在,问题是IntelliJ告诉我可以用方法引用替换lambda。
它只是意味着您可以更改此:
.map(str -> new Gizmo(str))
Run Code Online (Sandbox Code Playgroud)
对此:
.map(Gizmo::new)
Run Code Online (Sandbox Code Playgroud)
您可以阅读有关构造方法参考的更多信息。
| 归档时间: |
|
| 查看次数: |
763 次 |
| 最近记录: |