[Effective Java] (10)始终要覆盖toString

toString的通用约定指出,被返回的字符串应该是一个“简洁的,但信息丰富,并且易于阅读的表达形式”,并建议所有的子类都覆盖这个方法。

  • 提供好的toString实现可以使类用起来更加舒适。当对象被传递给println、printf、字符串联操作符(+)以及assert或者被调试器答应出来时,toString方法会自动调用;

  • 在实际应用中,toString方法应该返回对象中包含的所有值得的关注的信息;

  • 在实现toString的时候,必须做出决定:"是否在文档中指定返回值的格式"
    好处:它可以备用在一种标准的、明确的、适合人阅读的对象表示法。这种表示法可以用于输入和输出,以及用在永久的适合于人类阅读的数据对象中,如XML文档。若指定了格式,最好在提供一个相匹配的静态工厂或者构造器,以便容易的在对象和它的字符串表示法之间来回转换。并且不指定格式,就可以保留灵活性,便于在将来的发行版本中增加信息,或者改进格式
    缺点:如果这个类已经被广泛使用,一旦指定格式,就必须始终如一地坚持这种格式,如果将来的发行版本中改变了这种表示法,就会破坏他们的代码和数据。

注:无论是否制定格式,都应该在文档中明确的表明。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,269评论 19 139
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,281评论 0 4
  • 作者用一年的时间完成了MIT4年33门课程,与我们分享如何用整体性学习方式进行高效学习的书,书中有理念同时也有一定...
    苏老夫子阅读 4,827评论 13 191
  • 巫山: 我是被师傅捡回雪山的。我无父无母,至少我不知道。我只有一个亲人-师傅。他唤我巫山。 雪山很冷清,我不...
    新芽赵阅读 396评论 4 5