我开始使用流,并且遇到以下问题:
ArrayList<Integer> al = new ArrayList<Integer>();
al.add(10);
al.add(20);
al.add(30);
al.stream().forEach(System.out::println); // This works
al.stream().map(System.out::println); // This fails with error as "Incompatible types: expected not void but compile-time declaration for method reference has void return type"
有人可以解释一下吗?
map()
将一种类型的元素的Stream
转换为另一种类型的元素的Stream
。
因此,您必须将将原始类型的元素转换为新类型的map()
传递给Function
。 System.out::println
不适合Function
功能接口,因为它具有void
返回类型。