我是从文本文件写到ArrayList
。这是我的代码:
List<String> text = new ArrayList<String>();
try (Stream<String> stream = Files.lines(Paths.get(path))) {
stream.forEach(text::add); //the part I'm stucked with
} catch (Exception e) {
System.err.println(e.getMessage());
}
实际上,我已经forEach(text::add)
直觉地制作了它,并且它有效。你能解释一下这部分的内部结构,我应该阅读哪些主题以及有哪些替代方案? Oracle告诉:
forEach(Consumer&lt;?super T&gt; action)
为每个人执行一个动作 这个流的元素。
所以我不清楚我的代码是如何工作的。
答案 0 :(得分:1)
部分text::add
称为MethodReference
。
有关详细信息及其工作原理,请参阅oracle的官方文档:MethodReference
另一篇关于MethodReference
的精彩文章,包括forEach
Using method references in Java 8