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



Object.toString() JavaDoc 说:

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

尽管如此,许多标准Java类,如Collections(Sets,Lists等),可以有一个非常有用的toString()方法,不要费心实现它。这种愚蠢有原因吗?

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

编辑:哎呀,这是我使用IDE的失败。我遵循了界面而不是实现,出于某种原因,我直接Object.toString().

UPD:

如果你的意思是Collection类,那么答案将是:这不完全是这样的。许多Collection类重写此方法;例如,AbstractCollection类,它具有自己的toString实现 - 所有继承的类都是通用的。

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

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

还要检查您不能创建集合类的对象,因为它的构造函数是私有的。检查java.util.Collections源,第 56 行

最新更新