Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
effective-java-3rd-chinese
提交
86041aa2
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 搜索 >>
未验证
提交
86041aa2
编写于
4月 04, 2020
作者:
B
baobaoyeye
提交者:
GitHub
4月 04, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修改规则12 (#55)
Co-authored-by:
N
包仁义
<
renyi.bao@yiducloud.cn
>
上级
75fb7b68
变更
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
浏览文件 @
86041aa2
...
...
@@ -2,7 +2,7 @@
虽然 Object 类提供了 toString 方法的实现,但它返回的字符串通常不是你的类的用户想要看到的。 它由类名后跟一个「at」符号(@)和哈希码的无符号十六进制表示组成,例如
`PhoneNumber@163b91`
。 toString 的通用约定要求,返回的字符串应该是「一个简洁但内容丰富的表示,对人们来说是很容易阅读的」。虽然可以认为
`PhoneNumber@163b91`
简洁易读,但相比于
`707-867-5309`
,但并不是很丰富 。 toString 通用约定「建议所有的子类重写这个方法」。好的建议,的确如此!
虽然它并不像遵守 equals 和 hashCode 约定那样重要 (条目 10 和 11),但是提供一个良好的 toString 实现使你的类更易于使用,并对使用此类的系统更易于调试。当对象被传递到 println、printf、字符串连接操作符或断言,或者由调试器打印时,toString 方法会自动被调用。即使你从不调用对象上的 toString,其他人也可以。例如,
对对象有引用的组件可能包含在日志错误消息中对象的字符串表示
。如果未能重写 toString,则消息可能是无用的。
虽然它并不像遵守 equals 和 hashCode 约定那样重要 (条目 10 和 11),但是提供一个良好的 toString 实现使你的类更易于使用,并对使用此类的系统更易于调试。当对象被传递到 println、printf、字符串连接操作符或断言,或者由调试器打印时,toString 方法会自动被调用。即使你从不调用对象上的 toString,其他人也可以。例如,
有一个引用了某对象的组件,它可能在日志错误信息中包含该对象的字符串描述
。如果未能重写 toString,则消息可能是无用的。
如果为
`PhoneNumber`
提供了一个很好的 toString 方法,那么生成一个有用的诊断消息就像下面这样简单:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录