Java Streams:将println与map和forEach结合使用

问题描述 投票:0回答:1

我开始使用流,并且遇到以下问题:

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"

有人可以解释一下吗?

java java-stream
1个回答
0
投票

map()将一种类型的元素的Stream转换为另一种类型的元素的Stream

因此,您必须将将原始类型的元素转换为新类型的map()传递给FunctionSystem.out::println不适合Function功能接口,因为它具有void返回类型。

© www.soinside.com 2019 - 2024. All rights reserved.