虽然java.lang.Object提供了toString实现,以下java
public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }
它包含类名称,一个"@"符号,以及散列码的无符号十六进制表示法。但这通常不是咱们所但愿看到的。所以建议全部子类覆盖这个toString方法。提供好的toString实现可使类用起来更加温馨,当对象被传递给println、printf、字符串联操做符(+)以及assert或者被调试器打印出来时,toString方法会被自动调用。程序员
两个建议:编程
1.不管是否决定指定格式,都应该在文档中明确地代表意图,经过文档注释来讲明。spa
2.不管是否指定格式,都为toString返回值中包含的全部信息,提供一种编程式的访问途径,如使用getter方法提供。不然程序员必须去解析字符串,而这会致使大量没必要要的工做量和增长程序出错的可能性。调试