如下:
IntStream iStream = IntStream.range(1,4);
iStream.forEach(System.out::print);
List list1 = iStream.collect(Collectors.toList());//error!
Java 1.8 编译器给出类型推断错误。类似的代码适用于 String 类型:
List<String> ls = new ArrayList<>();
ls.add("abc");
ls.add("xyz");
List list2 = ls.stream().collect(Collectors.toList());
为什么?IntStream/LongStream/DoubleStream 的工作方式与其他类型不同吗?如何修复我的编译错误?