forEach 方法接受一个返回值的 lambda 表达式。为什么我没有收到以下代码的编译问题?

AtomicInteger value1 = new AtomicInteger(0);

IntStream.iterate(1, x -> 1).limit(100).parallel().forEach(y -> value1.incrementAndGet());

在上面的代码中,forEach 接受一个返回值的 lambda 表达式。但是 forEach on stream 只接受不能从其接受方法返回任何值的消费者。为什么我没有收到编译错误?


慕勒3428872
浏览 82回答 1
1回答

慕仙森

为什么我没有收到编译错误?因为方法返回的值在使用时会被忽略。您也可以像IntConsumer现在的 accept 方法一样查看它:new IntConsumer() {    @Override    public void accept(int y) {        value1.incrementAndGet();    }});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java