在我们打印输出的时候,如:
// 要打印obj里的内容,我们只需重写toString()方法,就可以打印出内容,而不是地址
System.out.println(obj);
要打印obj里的内容,我们只需重写toString()方法,就可以打印出内容,而不是地址。
可以查看println()方法的源码,如图:
可以发现:在println()方法中调用了valueOf(obj)方法;那么再看valueOf(obj)方法的源码,如图:
看到这里,终于找到了原因,原来在valueOf(obj)方法中:存在obj.toString();这也不难想通开头说的那种看似“自动”调用的原理了!