【发布时间】:2018-10-15 18:29:35
【问题描述】:
我是 java8 的新手。我试图了解 Streams 中 foreach 循环的工作原理。 我的代码如下:-
Stream<String> s = someist.stream();
Consumer<String> consumer = (String s1)->System.out.println(s1);
s.forEach(consumer);
问题是当我只是传递 Consumer 的引用而不是在其中调用 consumer.accept(T t) 时,foreach 循环如何知道调用 consumer.accept(T t)。虽然,当我们为函数式接口提供一些 lambda 表达式时,我们需要调用它的抽象方法,但我们只是没有在这里调用它。 那么 foreach 循环如何知道它应该如何处理作为参数提供的消费者引用呢?
【问题讨论】:
标签: java foreach java-8 java-stream