0

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

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

问题Collectors.toList()部分发生。

4

1 回答 1

3

Collectors.toList()返回一些List不一定是的实现ArrayList,并且可能不是。

尝试

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));
于 2015-11-20T09:32:51.667 回答