2011-11-26 92 views
2

在字符串toString()方法返回this當我通過它System.out.println()它打印String的內容。這讓我感到困惑,情況如何。請來解釋一下。java toString()返回這個

public String toString() { return this; }

謝謝。

回答

10

在Java中定義於ObjecttoString方法負責將對象轉換爲字符串表示形式。由於String已經是一個字符串,所以toString方法只是簡單地返回它自己。

+0

也可能有助於知道關鍵字'this'引用了當前對象。 – bdares

6

,當我通過它的System.out.println()將打印字符串

事實上的內容,當你通過一個StringSystem.out.println你不通過無論如何,toString。所述System.out是指其具有立即接受String個方法的PrintStream對象:

public void println(String x)

打印String,然後終止該行。


toString該合同是返回對象的字符串表示:

public String toString()

返回該對象的字符串表示。 一般而言,toString方法將返回一個字符串,用於「文本地表示」此對象。結果應該是一個簡明但內容豐富的表示,對於一個人來說很容易閱讀。建議所有子類重寫此方法。

由於String恰好一個String它可以返回本身(this)!

+0

事實上,正如您的評論所示,toString方法的契約非常鬆散。實施可能會有很大差異。許多類只返回類名和實例ID。 String類返回字符串值。這意味着toString方法通常僅用於調試。一個重要的例外是StringBuffer的toString方法。 – dnuttle

相關問題