java - 如果它是一个抽象方法,forEach 如何将 lambda 表达式应用于数组?
问题描述
List<String> friends = Arrays.asList("Brian", "Nate", "Neal", "Sara");
friends.forEach(name -> System.out.println(name));
我正在研究java,我发现了这个例子,我只是把它放在一个main中,它正常打印了数组,所以我的问题是:
在我的理解name -> System.out.println(name)
中是一个用于快速实现打印功能的 lambda 表达式,但我想知道如何forEach
将它应用到数组的每个元素上?它是Iterable
接口的方法,因此...空,那么代码在哪里告诉将打印应用于数组中的每个名称?
解决方案
forEach
是来自Iterable接口的默认方法,默认实现只是增强Consumer
了每个元素的循环调用
for (T t : this)
action.accept(t);
对 Iterable 的每个元素执行给定的操作,直到处理完所有元素或该操作引发异常。除非实现类另有规定,否则按迭代顺序执行操作(如果指定了迭代顺序)。操作引发的异常将转发给调用者。