方法参考
System.out::println将
System.out首先求值,然后创建一个等效的
lambda表达式来捕获求值。通常,你将使用
o->System.out.println(o)与方法引用相同的方法来实现,但是此lambda表达式将在
System.out每次调用该方法时求值。
因此,确切的等效条件是:
PrintStream p = Objects.requireNonNull(System.out); numbers.forEach(o -> p.println(o));
如果有人
System.setOut(…);在两者之间进行调用,则会有所不同。



