1、解释
Object类提供了toString的一个实现:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString( hashCode ());
}
但它返回的 字符串 通常并不是用户所期望看到的,该字符串由该对象实例的类名称+“@”+该对象的哈希码的无符号十六进制表示组成,例如UserBean@163b91。
toString的通用约定指出,被返回的字符串应该是一个“简洁的但信息丰富,并且易于阅读的表达形式”,“建议所有的子类都覆盖这个方法。”
提供好的toString实现可以便类用起来更加舒适,使用了这个类的系统也更易于调试。
2、实现高质量toString的方法
- toString方法应该返回对象中包含的所有值得关注的信息
- 为toString返回值中包含的所有信息提供一种可以通过编程访问的途径
- 在静态工具类中编写toString方法是没有意义的。也不要在大多数 枚举类型 中编写toString方法,因为 java 已经为你提供了非常完美的方法
3、最佳实践
在实际工作中,我们通常使用IDE提供的自动生成工具,如下代码就是使用 Eclipse 自动生成的:
@ Override
public String toString() {
return "UserBean [loginId=" + loginId + ", password=" + password + ", name=" + name + "]";
}