我正在阅读一本电子书,目前正在阅读Lambdas - Stream。 请仔细看看代码的第一部分。
int[] values = {3, 10, 6, 1, 4, 8, 2, 5, 9, 7};
// display original values
System.out.print("Original values: ");
IntStream.of(values)
.forEach(value -> System.out.printf("%d ", value));
System.out.println();
本书解释了IntStream
方法forEach
(终端操作)对每个流元素执行任务。该方法接收一个对象作为其实现IntConsumer
功能接口(包java.util.function)的参数。此接口的accept
方法接收一个int值并使用它执行任务。
此外,它说在Java SE 8之前我们通常会使用匿名内部类实现接口IntConsumer:
new IntConsumer()
{
public void accept(int value)
{
System.out.printf("%d ", value);
}
}
现在我的问题是为什么我们需要一个IntConsumer实例才能调用该方法?