未验证 提交 ae376be1 编写于 作者: B baobaoyeye 提交者: GitHub

更新 规则12 (#58)

Co-authored-by: N包仁义 <renyi.bao@yiducloud.cn>
上级 c576bf73
......@@ -10,7 +10,7 @@
System.out.println("Failed to connect to " + phoneNumber);
```
  程序员将以这种方式生成诊断消息,不管你是否重写 toString,但是除非你这样做,否则这些消息将不会有用。 提供一个很好的 toString 方法的好处不仅包括类的实例,同样有益于包含实例引用的对象,特别是集合。 打印 map 对象时你会看到哪一个,`{Jenny=PhoneNumber@163b91}` 还是 `{Jenny=707-867-5309}`?
  除非你重写 toString 方法,否则程序员以这种方式生成的诊断消息将一无是处。 提供一个良好的 toString 方法不仅惠及类的实例,而且有益于那些包含实例引用的对象,集合尤为明显。 当打印一个 map 时你更愿看到 `{Jenny=PhoneNumber@163b91}` 还是 `{Jenny=707-867-5309}`?
  实际上,toString 方法应该返回对象中包含的所有需要关注的信息,如电话号码示例中所示。 如果对象很大或者包含不利于字符串表示的状态,这是不切实际的。 在这种情况下,toString 应该返回一个摘要,如 `Manhattan residential phone directory (1487536 listings)` 或线程`[main,5,main]`。 理想情况下,字符串应该是不言自明的(线程示例并没有遵守这点)。 如果未能将所有对象的值得关注的信息包含在字符串表示中,则会导致一个特别烦人的处罚:测试失败报告如下所示:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册