-2
我有一个关于java的方法参考的问题,格式如下:为什么java方法与对象而不是类相关?
acollection.foreach(System.out :: println);
我希望代码类似于;
acollection.foreach(System.PrintStream :: println);
您能解释一下将实现(代码)与对象相关的想法吗?
我有一个关于java的方法参考的问题,格式如下:为什么java方法与对象而不是类相关?
acollection.foreach(System.out :: println);
我希望代码类似于;
acollection.foreach(System.PrintStream :: println);
您能解释一下将实现(代码)与对象相关的想法吗?
PrintStream.println()
是一个实例方法,因此必须在实例(对象)上执行。
acollection.foreach(System.out::println);
就是这么做的。它将对System.out
执行println
集合中的每个元素。
acollection.foreach(System.PrintStream::println);
不能工作,因为没有给出PrintStream
的实例 - 也因为System.PrintStream
不是有效的语句。
那么,OOP并不是面向类的编程的缩写...所以如果你不知道OOP是什么,那么研究一下呢?首先询问Google和维基百科。 – Tom
在'forEach(System.out :: println)'中,你要求在实际对象'System.out'上调用'println'。没有'System.PrintStream'这样的东西。如果有的话,Java如何知道您想要打印的_什么printstream? – khelwood