假设我们有这段无聊的代码,我们都不得不使用:
ArrayList<Long> ids = new ArrayList<Long>();
for (MyObj obj : myList){
ids.add(obj.getId());
}
在切换到Java 8后,我的IDE告诉我可以用collect调用
替换这段代码,并自动生成:
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>)
我尝试过将参数进行强制转换,但是它给出了未定义的 A
和 R
,而IDE没有提供任何更多的建议。
我想知道在这种情况下如何使用 collect
调用,我找不到任何可以正确指导我的信息。有人能指点一下吗?