AtomicInteger value1 = new AtomicInteger(0);IntStream.iterate(1, x -> 1).limit(100).parallel().forEach(y -> value1.incrementAndGet());在上面的代碼中,forEach 接受一個返回值的 lambda 表達式。但是 forEach on stream 只接受不能從其接受方法返回任何值的消費者。為什么我沒有收到編譯錯誤?
1 回答

慕仙森
TA貢獻1827條經驗 獲得超8個贊
為什么我沒有收到編譯錯誤?
因為方法返回的值在使用時會被忽略。
您也可以像IntConsumer現在的 accept 方法一樣查看它:
new IntConsumer() {
@Override
public void accept(int y) {
value1.incrementAndGet();
}
});
添加回答
舉報
0/150
提交
取消