首页 > 其他 > 详细

第十条:始终要覆盖toString()方法

时间:2015-04-23 19:39:21      阅读:219      评论:0      收藏:0      [点我收藏+]

Object类提供的toString()方法如下:

public String toString()

{
    return getClass().getName() + "@" + Integer.toHexString(hashCode());

}

如果我们直接打印一个对象,就会调用这个对象的toString()方法,如果我们没有为该类覆盖toString()方法,

我们可以看出toString()方法,返回的是 “类名@散列值的十六进制”。

toString()方法的通用约定是:返回当前对象“简洁,但信息丰富,并且易于阅读的表达形式”。

一个对象的toString()方法在以下情况下会被自动调用:

println(),printf(), 字符串联操作符(+),assert ,被调试器打印出来时。

 

在实际应用中,toString()方法应该返回对象中包含的所有值得关注的信息。

对于一些值类,提供了toString()方法,把值类型输出为String类型,也应该提供一个相匹配的静态工厂方法或者构造器,将值的String类型转化为

值的本身类型。Java平台类库中的许多值类都采用了这种做法,如BigInteger,BigDecimal和绝大多数的基本类型包装类。这样就方便了程序员在对象类型

和字符串类型之间转化。

第十条:始终要覆盖toString()方法

原文:http://www.cnblogs.com/wangliyue/p/4451142.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!