2017-07-04 45 views
-2

我有一个关于java的方法参考的问题,格式如下:为什么java方法与对象而不是类相关?

acollection.foreach(System.out :: println);

我希望代码类似于;

acollection.foreach(System.PrintStream :: println);

您能解释一下将实现(代码)与对象相关的想法吗?

+0

那么,OOP并不是面向类的编程的缩写...所以如果你不知道OOP是什么,那么研究一下呢?首先询问Google和维基百科。 – Tom

+0

在'forEach(System.out :: println)'中,你要求在实际对象'System.out'上调用'println'。没有'System.PrintStream'这样的东西。如果有的话,Java如何知道您想要打印的_什么printstream? – khelwood

回答

0

PrintStream.println()是一个实例方法,因此必须在实例(对象)上执行。

acollection.foreach(System.out::println);就是这么做的。它将对System.out执行println集合中的每个元素。

acollection.foreach(System.PrintStream::println);不能工作,因为没有给出PrintStream的实例 - 也因为System.PrintStream不是有效的语句。

相关问题