在字符串toString()
方法中返回this
,当我传递System.out.println()
时,它会打印String
的内容。对我来说这是多么令人困惑。可以来解释一下。
public String toString() {
return this;
}
感谢。
答案 0 :(得分:10)
在Java中toString
上定义的Object
方法负责将对象转换为String表示。由于String
已经是String,因此toString
方法只返回自身。
答案 1 :(得分:6)
当我传递System.out.println()时,它会打印字符串的内容
事实上,当您将String
传递给System.out.println
时,无论如何都不会通过toString
。 System.out
引用PrintStream
对象,该对象的方法立即接受String
:
public void println(String x)
打印一个字符串,然后终止该行。
toString
的合同是返回对象的字符串表示形式:
public String toString()
返回对象的字符串表示形式。 通常,
toString
方法返回一个“文本表示”此对象的字符串。结果应该是一个简洁但信息丰富的表示,便于人们阅读。建议所有子类都重写此方法。
由于String
碰巧 一个String
,它可以自行返回(this
)!