学mybatis的过程中遇到的一个问题,不明白返回结果为什么自己调用了toString方法,求解惑。
问题描述:
创建会话工厂,动态实现Mapper接口
Mapper接口
sql映射文件代码
测试方法,此处并没有去调用toString
toString方法
执行结果
注释toString方法后的执行结果。
答
你不调用,println内部也会自动调用tostring,你不写他也有tostring.u1
答
只要点进去看sout的源码,就知道它为啥触发了tostring方法了
答
system.out.println()打印对象时会调用toString()方法,类没有重写toString()时,调用父类的toString()方法
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
答
1.System.out.println(),查看源码,进入转换为string
2.string类的valueof会调用对象的tostring方法
如果你的对象重写了tostring方法就调用本对象的 没有则调用object的