怕输的人永远赢不了。
1.Object.toString
Object.toString返回一个用于表达一个对象的字符串,它包含类名称,一个“@”符号,以及散列码的无符号十六进制表示法。这通常不是用户期望看到。
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
2.toString被自动调用
- 当对象被传递给println、printf 时
- 字符串联操作(+)时
- assert或者被调试器打印时
3.始终覆盖toString
toString的通用约定指出,被返回的字符串应该是一个“简洁的,但信息丰富,并且易于阅读的表达形式”。虽然遵守toString的约定并不是十分重要,但提供好的toString实现可以使类用起来更加舒适。
- 获取有用的诊断信息非常容易,只需要将这个对象传递给println或者printf。
- 好的toString方法会让程序员更容易理解相应的诊断信息。
4.需要注意的地方
-
无论是否决定指定格式,都应该在文档中明确地表明意图,通过文档注释来说明。
-
无论是否指定格式,都为toString返回值中包含的所有信息,提供一种编程式的访问途径,如使用getter方法提供。否则程序员必须去解析字符串,而这会导致大量不必要的工作量和增加程序出错的可能性。