-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