Dan*_*kov 35 java lambda java-8
我想知道如何获得lambda对字段的引用.我不想使用方法,因为我的字段是公共最终的.我怀疑这是不可能的,但我没有看到明显的陈述.
class A {
public final String id;
...
}
Map<String, A> f(List<A> l) {
return l.stream().collect(Collectors.toMap(A::id, Function.identity()));
}
Run Code Online (Sandbox Code Playgroud)
Bri*_*etz 43
听起来你希望Java具有相应的字段引用功能,就像它对方法引用一样.但这种情况并非如此.方法引用是某种类型的lambda表达式的简写,但是没有相应的字段语法.在JSR-335专家组审议期间探讨了字段文字(这里有一些参考文献http://mail.openjdk.java.net/pipermail/lambda-dev/2011-November/004235.html)但未包括在内在Java SE 8中.
Era*_*ran 26
您始终可以使用lambda表达式:
return l.stream().collect(Collectors.toMap(a -> a.id, Function.identity()));
Run Code Online (Sandbox Code Playgroud)
我认为"方法引用"由于某种原因以这种方式调用,因此仅适用于方法.
| 归档时间: |
|
| 查看次数: |
9411 次 |
| 最近记录: |