我在想下面這段Java代碼:System.out.println - 此方法鏈接在Java中嗎?
「System.out.println」。我對此正確:
「系統」是一個靜態類。 「.out」是類「System」的一種方法。這是我對「.println」輕微混淆的一點 - 這是什麼類/對象?
此外,這個概念被稱爲「方法鏈」?
由於
GF
我在想下面這段Java代碼:System.out.println - 此方法鏈接在Java中嗎?
「System.out.println」。我對此正確:
「系統」是一個靜態類。 「.out」是類「System」的一種方法。這是我對「.println」輕微混淆的一點 - 這是什麼類/對象?
此外,這個概念被稱爲「方法鏈」?
由於
GF
不,這不是方法鏈接。你是對的System
是一個類(只是一個普通的類,而不是「靜態的」 - 只有內部類可以是靜態的),但out
是類(java.io.PrintStream類型)的靜態字段,只有println()
是一種方法的PrintStream
。
這是方法鏈接的示例:
String s = "Long String ".toUpperCase().substring(4).trim()
out
不是方法 - 它是PrintStream
一個實例,其中println
是一種方法。
參見http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html#out
類System具有一個成員變量 '出',類型PrintStream的。這不是一種方法。
類PrintStream有一個方法println(String)。
所以不行,不是方法鏈。
據我所知,方法鏈只是返回這個你可能返回void,允許在一個語句中多次調用方法,也許可以更自然地表達一個DSL。你可以看到它在StringBuilder的追加(String)方法
StringBuilder builder = new StringBuilder()
.append("I am a ")
.append("String")
.append("Builder");
如果你有興趣瞭解更多的行動,Martin Fowler的談論方法鏈接here。
「靜態」僅用於內部類。 – 2009-12-28 12:03:32
是的,我在你指出前糾正了我的錯誤*,謝謝! – Brabster 2009-12-28 12:11:39