本文是《Effective Java》读书笔记第10条,其中内容可能会结合实际应用情况或参考其他资料进行补充或调整。
这一条其实没有什么可说的。
我们都知道,Object默认有toString方法的实现,但是默认的实现是“类名@散列码的无符号十六进制表示”。就好像别人问你“你在看什么?”,你回答“我在看电影”一样几乎没有什么价值,因为人家想了解的是你在看什么电影。
另外再考虑一种情况,就是你的类的对象在Map这样的集合中,那么Map对象在使用toString方法后返回“movie1=Movie@3e9548”好还是返回“movie1=Avatar”好呢,答案显而易见。
具体例子就不用给了吧。关于toString还有一点点要嘱咐的就是,如果你在造轮子,那么最好对toString方法在注释中关于返回格式做明确的说明,并善意提醒“该返回格式有可能会在以后的版本中发生改变。。。”,因为有可能别人会拿到你的toString返回结果进行解析,一旦格式有变,人家岂不是要遭殃。当然还要在你的类中对关键域提供类似getter的编程式访问途径,以避免这种情况的出现。
本文探讨了Java中Object类默认的toString方法及其不足之处,并强调了在实际应用中重写toString方法的重要性。文章还提供了实用建议,如对返回格式进行文档说明及提供关键域的访问方法。
650

被折叠的 条评论
为什么被折叠?



