您的位置:首页 > 编程语言 > Java开发

10. 【对于所有对象都通用的方法】尽量覆盖toString方法

2016-07-13 21:09 351 查看
本文是《Effective Java》读书笔记第10条,其中内容可能会结合实际应用情况或参考其他资料进行补充或调整。

这一条其实没有什么可说的。

我们都知道,Object默认有
toString
方法的实现,但是默认的实现是“类名@散列码的无符号十六进制表示”。就好像别人问你“你在看什么?”,你回答“我在看电影”一样几乎没有什么价值,因为人家想了解的是你在看什么电影。

另外再考虑一种情况,就是你的类的对象在Map这样的集合中,那么Map对象在使用
toString
方法后返回“movie1=Movie@3e9548”好还是返回“movie1=Avatar”好呢,答案显而易见。

具体例子就不用给了吧。关于
toString
还有一点点要嘱咐的就是,如果你在造轮子,那么最好对
toString
方法在注释中关于返回格式做明确的说明,并善意提醒“该返回格式有可能会在以后的版本中发生改变。。。”,因为有可能别人会拿到你的
toString
返回结果进行解析,一旦格式有变,人家岂不是要遭殃。当然还要在你的类中对关键域提供类似getter的编程式访问途径,以避免这种情况的出现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java