lon*_*ome 1 java foreach java-8 java-stream
我有以下代码,并希望在将它们乘以我的10之后打印列表元素,但它表示不允许使用void.怎么解决?
List<Integer> integerList = Arrays.asList(10,22,30);
long muliplied = integerList.stream()
.map(e -> e*10)
.forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)
您无法保存方法的结果,因为其返回类型为void.
请尝试以下代码
package eu.webfarmr;
import java.util.Arrays;
import java.util.List;
public class StreamExample {
public static void main(String[] args) {
List<Integer> integerList = Arrays.asList(10, 22, 30);
integerList.stream().map(e -> e * 10).forEach(System.out::println);
}
}
Run Code Online (Sandbox Code Playgroud)
打印结果是
100
220
300
Run Code Online (Sandbox Code Playgroud)
该类的forEach方法Stream以a Consumer为参数.A Consumer是接受参数但返回void的.现在让我们逐一查看每个步骤返回的内容:
integerList.stream() 返回一个Stream
.map(e -> e*10) 再次返回一个Stream
.forEach(System.out::println); 返回一个空格
您试图将此void分配给long,因此编译器会抱怨.
| 归档时间: |
|
| 查看次数: |
468 次 |
| 最近记录: |