Java 8 Streams,无法编译的示例

时间:2015-11-20 09:31:41

标签: java list java-stream collectors

我的问题很简短,为什么不编译?

null

问题出现在final ArrayList <Integer> list = IntStream.rangeClosed(1, 20).boxed().collect(Collectors.toList()); 部分。

1 个答案:

答案 0 :(得分:3)

Collectors.toList()会返回一些List实现,但不一定是ArrayList,可能不是。{/ p>

尝试

final List <Integer> list = IntStream.rangeClosed(1, 20)
                                     .boxed()
                                     .collect(Collectors.toList());

如果您特别需要collect(Collectors.toCollection(ArrayList::new)),则可以使用ArrayList

final ArrayList <Integer> list = IntStream.rangeClosed(1, 20)
                                          .boxed()
                                          .collect(Collectors.toCollection(ArrayList::new));