【Effective Java 12】始终要覆盖 toString

1. 为什么要始终覆盖 toString

  • 遵守 toString 约定并不像遵守 equalshashCode 的约定那么重要。但是,提供好的 toString 方法可以使类用起来更加舒适,使用这个类的系统也更易于调试。

2. 覆盖 toString 时的约定

  • 在实际应用中,toString 方法应该返回对象中包含的所有值得关注的信息。
    • 对于值类(value class),建议在文档中指定返回值的格式
    • 如果指定了格式,通常最好再提供一个相匹配的静态工厂或者构造器,以便程序员可以很容地在对象及其字符串表示法之间来回转换。
  • 无论是否决定指定格式,都应该在文档中明确地表明你的意图。
  • 不论是否指定格式,都为 toString 返回值中包含的所有信息提供一种可以通过编程访问的模式

posted on 2022-04-08 15:32  Silgm  阅读(32)  评论(0编辑  收藏  举报

导航