Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
effective-java-3rd-chinese
提交
ae376be1
E
effective-java-3rd-chinese
项目概览
OpenDocCN
/
effective-java-3rd-chinese
9 个月 前同步成功
通知
214
Star
9
Fork
4
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
effective-java-3rd-chinese
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
ae376be1
编写于
4月 05, 2020
作者:
B
baobaoyeye
提交者:
GitHub
4月 05, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
更新 规则12 (#58)
Co-authored-by:
N
包仁义
<
renyi.bao@yiducloud.cn
>
上级
c576bf73
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
1 addition
and
1 deletion
+1
-1
docs/notes/12. 始终重写 toString 方法.md
docs/notes/12. 始终重写 toString 方法.md
+1
-1
未找到文件。
docs/notes/12. 始终重写 toString 方法.md
浏览文件 @
ae376be1
...
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录