您的位置 首页 java

Effective Java代码规则之十二:始终要覆盖toString

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 + "]";
 }
 

文章来源:智云一二三科技

文章标题:Effective Java代码规则之十二:始终要覆盖toString

文章地址:https://www.zhihuclub.com/174211.shtml

关于作者: 智云科技

热门文章

网站地图