2011-11-26 82 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

相关问题