java toString()返回此

在String toString()方法中返回this ,当我传递它System.out.println()它打印String的内容。 对我来说这是多么令人困惑。 请来解释一下。

public String toString() { return this; }

谢谢。

在Java中的Object上定义的toString方法负责将对象转换为String表示。 由于String已经是String,因此toString方法只返回自身。

当我传递System.out.println()时,它会打印String的内容

实际上,当您将String传递给System.out.println 无论如何都不会通过toStringSystem.out引用一个PrintStream对象,该对象有一个立即接受String的方法:

public void println(String x)

打印一个字符串,然后终止该行。


toString的契约是返回对象的字符串表示:

public String toString()

返回对象的字符串表示forms。 通常, toString方法返回一个“文本表示”此对象的字符串。 结果应该是简洁但信息丰富的表示,便于人们阅读。 建议所有子类都覆盖此方法。

由于String恰好一个String它可以自己返回( this )!