在java中可以直接打印字符串等内容,但是直接将对象进行打印输出时,并不会输出具体值
而是一些奇怪的东西,如下图:
输出结果为:jp.co.nttdata.bccs.domain.dto.sousinKeiroCenterList@6d06d69c,为什么会输出这么一个结果呢?
通过查看java API我们可以得知,Java直接输出一个类的对象的时候,会自动调用这个类的toString方法
这个方法在位于object类中的,而在Java中所有的类都继承Object类,所以所有的类都有toString方法。
通过源码我们发现该方法的实现是这样的:
getClass().getName()+'@'+Integer.toHexString(hashCode())
输出的结果是:
类所在的包名.类名 + @ + 哈希码值
而我们在实际开发中,很多时候我们并不想打印对象的哈希码值
而是想获取该对象的具体属性,这个时候该怎么做呢?
我们已知直接打印对象时会自动调用toString方法
该方法是继承于Object类,所以为了能改变内容
很显然我们需要进行toString方法的重写,如下:
@Override
public String toString() {
return "centerCode=" + centerCode + ", centerName=" + centerName;
}
重写以后发现我们打印内容不再是哈希码值,而是替换成我们自己想要获取的属性值