当我们重写toString()方法时,我们应该始终返回对象的字符串表示形式吗?

实际上,toString方法应返回对象的String表示形式。

在一个项目中,我发现一些类重写了toString方法,从而允许返回null。

喜欢:

@Override

public String toString() {

.......

return null;

}

对我来说,这种做法违反了toString方法的主要建议,后者应返回对象的String表示形式。

API文档的Object.toString()说:

返回对象的字符串表示形式。通常,toString方法返回一个“以文本形式表示”此对象的字符串。结果应该是简洁易懂的陈述,便于人们阅读。建议所有子类都重写此方法。

当我们重写Object的toString()方法时,永远不要返回null?

回答:

toString主要用于表示对象是程序员的情况,例如调试和日志记录,我们需要查看对象的某些文本版本。使用对象中的信息,当您在日志文件或调试器中看到该信息时,该信息将对您有用。摘自Effective

Java,第3章,第10条:

尽管它不像遵守equals和hashCode契约(第8项,第9项)那么重要,但是提供良好的toString实现会使您的类使用起来更加愉快。当将对象传递给println,printf,字符串连接运算符或断言或由调试器打印时,toString方法将自动调用。

API文档中有关Object#toString的建议是:

通常,toString方法返回一个“以文本形式表示”此对象的字符串。结果应该是简洁易懂的陈述,便于人们阅读。建议所有子类都重写此方法。

返回null永远不会视为提供信息,并且很容易引起误解。似乎有人在使用toString来完成原本不希望的事情。

以上是 当我们重写toString()方法时,我们应该始终返回对象的字符串表示形式吗? 的全部内容, 来源链接: utcz.com/qa/414851.html

回到顶部