java - 如何使用::运算符作为引用

标签 java lambda java-8 method-reference

<分区>

转换对象列表 Foo有一个 id , 到 Map<Integer,Foo>有了那个id作为 key ,使用流 API 很容易:

public class Foo{
    private Integer id;
    private ....
    getters and setters...
}

Map<Integer,Foo> myMap = 
fooList.stream().collect(Collectors.toMap(Foo::getId, (foo) -> foo));

有什么方法可以替代 lambda 表达式:(foo) -> foo使用 :: 的东西运算符(operator)?类似于 Foo::this

最佳答案

虽然它不是方法引用,但 Function.identity() 是您所需要的:

Map<Integer,Foo> myMap = 
    fooList.stream().collect(Collectors.toMap(Foo::getId, Function.identity()));

关于java - 如何使用::运算符作为引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46661975/

相关文章:

c# - 重构以消除 Lambda 表达式中的重复

java - 如何使用 Java Stream 获取属于列表中元素的平面元素列表

输入 "quit"时 Java 循环未退出

java - 不断变化的数据

java - 多部分表单 POST 提交请求获取损坏的文件

java - 可作为方法引用运行

R匿名函数: capture variables by value

java - 如何使用 Java 8 中的函数映射将 Map<K,V1> 转换为另一个 Map<K,V2>?

Java 8流聚合一张图

java - 缺少返回声明