今天在敲代码的时候,发现了一个有趣的现象,直接打印对象,一般都是出现对象的地址,然而今天出现的确实直接调用对象的toString()方法,分析一下心得
答案其实很简单,就是
自己写的toString()方法它继承了lang的toString()方法
例如这个类的toString()方法
@Override
public String toString() {
return "Emp{" +
"ename='" + ename + '\'' +
", gender='" + gender + '\'' +
", dept=" + dept +
'}';
}
Emp emp = context.getBean("emp", Emp.class);
System.out.println(emp);
输出结果
我们把println()方法点进去,发现调用的是调用valueOf()方法
valueOf()方法代码如下
而原来的toString()方法是这样的
打印出来的是它的类目和文件名和这个类的hashCode
想要打印原来的类地址,只需要把toString()的这个方法改成别的名字就可以了