AtomicInteger value1 = new AtomicInteger(0);
IntStream.iterate(1, x -> 1).limit(100).parallel().forEach(y -> value1.incrementAndGet());
在上面的代码中,forEach接受一个返回值的lambda表达式。但是forEach on stream只接受不能从其accept方法返回任何值的Consumer。为什么我没有收到编译错误?
为什么我没有收到编译错误?
因为方法返回的值在消耗时被忽略。
你也可以看一下它像IntConsumer
的accept方法现在看起来像:
new IntConsumer() {
@Override
public void accept(int y) {
value1.incrementAndGet();
}
});