博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第10条:始终要覆盖toString
阅读量:7190 次
发布时间:2019-06-29

本文共 857 字,大约阅读时间需要 2 分钟。

java.lang.Object的toString方法的实现:

public String toString() {        return getClass().getName() + "@" + Integer.toHexString(hashCode());}

这通常不是用户期望看到的,它包含类名称,一个“@”符号,以及散列码的无符号十六进制表示法。

 

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

 

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

提供好的toString方法,产生有用的诊断信息会非常容易:System.out.println("Failed to connect: " + phoneNumber);

 

toString方法应该返回对象中包含的所有值得关注的信息,如果对象很大,包含的状态信息难以用字符串表示,应该返回一个摘要信息。

 

在实现toString的时候,必须作出是否指定返回值的格式的决定。指定格式的好处是可以被用作一种标准的、明确的、适合人阅读的对象表示法。不足之处在于类一旦指定格式,必须始终如一地坚持这种格式。程序员将编写代码来解析这种字符串,如果将来改变了格式,他们的代码就无法正常运行了。总的来说不指定格式保留了灵活性。

 

两个建议:

1.无论是否决定指定格式,都应该在文档中明确地表明意图,通过文档注释来说明。

2.无论是否指定格式,都为toString返回值中包含的所有信息,提供一种编程式的访问途径,如使用getter方法提供。否则程序员必须去解析字符串,而这会导致大量不必要的工作量和增加程序出错的可能性。

转载于:https://www.cnblogs.com/13jhzeng/p/5646033.html

你可能感兴趣的文章
揭秘天猫未来小店背后的NEC the WISE技术群
查看>>
CentOS 6.5上安装并配置FastDFS
查看>>
流程DEMO-借款申请
查看>>
算法——分支限界法
查看>>
Git版本恢复命令reset(转载)
查看>>
运维第八单元
查看>>
实战 MDT 2012(二)---制作模板机
查看>>
Memcached (二)YUM安装和编译安装
查看>>
Citrix 3D虚拟化解决方案之小结
查看>>
setTimeout与setInterval区别
查看>>
安装配置rabbitmq
查看>>
linux服务器运维 -- 路线、架构
查看>>
Sqoop数据分析引擎安装与使用
查看>>
polysh批量执行shell命令
查看>>
如何使用GNS3和Cisco IOU搭建路由交换实验-IOU篇
查看>>
keepalived 多实例
查看>>
mysql部分参数注解
查看>>
***PHP Notice: Undefined index: ..问题的解决方法
查看>>
php模块安装
查看>>
Python3.2 --- Print函数用法
查看>>