Java 8:将POJO转换为map-ID-POJO = map中的map(函数<! - ?super C,? - >)无法应用于(<lambda expression =“”>,<lambda expression =“ “>)

时间:2016-10-21 15:13:17

标签: java list collections lambda java-stream

如何解决这个问题?

错误

地图(功能) 在Stream中无法应用 to(lambda expression&gt;,lambda expression&gt;)

static class C {
    int id;

    public int getId() {
        return id;
    }
}

    Map<Integer, C> c = Arrays.asList(new C()).stream().collect(Collectors.toMap(c -> c.getId(), c -> c));

1 个答案:

答案 0 :(得分:2)

试试这个

 Map<Integer, C> map = Arrays.asList(new C())
                          .stream()
                          .collect(Collectors.toMap(C::getId, c -> c));

您的示例中的映射是将流中的对象从一个更改为另一个。例如您有C个对象的流,然后map(c -> c.getId())会将其更改为Integers的流。您正在寻找的是collect功能,它终止了流,并允许您收集&#34;它适用于你试图去的任何物体

相关问题