假设我们有这段无聊的代码,我们都必须使用:
ArrayList<Long> ids = new ArrayList<Long>();
for (MyObj obj : myList){
ids.add(obj.getId());
}
切换到 Java 8 后,我的 IDE 告诉我可以用 替换此代码collect call
,它会自动生成:
ArrayList<Long> ids = myList.stream().map(MyObj::getId).collect(Collectors.toList());
但是它给了我这个错误:
Steam 中的 collect(java.util.stream.Collector) 无法应用于:(java.util.stream.Collector, capture, java.util.List>)
我尝试转换参数,但它给了我 undefined A
and R
,并且 IDE 没有提供更多建议。
我很好奇您如何collect call
在这种情况下使用,我找不到任何可以正确指导我的信息。任何人都可以发光吗?