当我们重写toString()方法时,我们应该始终返回对象的字符串表示形式吗?
实际上,toString方法应返回对象的String表示形式。
在一个项目中,我发现一些类重写了toString方法,从而允许返回null。
喜欢:
@Overridepublic 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