为什么Java标准库不实现toString方法?

时间:2012-12-19 08:26:43

标签: java

Object.toString() JavaDoc说:

  

返回对象的字符串表示形式。通常, toString 方法返回一个“文本表示”此对象的字符串。

尽管如此,许多标准的java类,如Collections(集合,列表等),可能有一个非常有用的toString()方法,但不打算实现它。有这种愚蠢的原因吗?

或者嘿,你想要一个十六进制的字符串吗? :)

编辑:哎呀,这是我使用IDE的失败。我按照界面而不是实现进行操作,直接将我带到了Object.toString()

2 个答案:

答案 0 :(得分:6)

<强> UPD:

如果您的意思是Collection课程,那么答案将是: 情况并非如此。许多Collection类重写此方法;例如,AbstractCollection类,它有自己的toString实现 - 对所有继承的类都是通用的。

如果你的意思是Collection[s],那么这个类有私有构造函数,无法实例化;所以特殊的toString方法毫无意义。

答案 1 :(得分:2)

如果您正在讨论Collections类,它是实用程序类,则不必重写toString()方法。通常在实用程序类的情况下,我们将构造函数设为私有并提供静态方法。

另外检查你不能创建Collections类的对象,因为它的构造函数是私有的。查看java.util.Collections source,第56行