日期:2014-05-20  浏览次数:20600 次

关于重写toString
public String toString(){
  return this + "@" + this.hashCode();
}
 这样重写对不对?

为什么会转化为 下面的形式:

public String toString(){
  return String.valueOf(this) + "@" + String.valueOf(this.hashCode());
}

------解决方案--------------------
this代表的是对象本身
而且隐式转换中,采用 “+ ”连接字符串的话,首先调用的就是对象的toString方法
也就是

public String toString(){ 
return this.toString() + "@" + this.hashCode(); 


你在重写toString方法的同时,又怎么能调用这个方法?
------解决方案--------------------
会递归死。。 
this + "@" 好像是相当于this.toString() + "@" 。。。。。

------解决方案--------------------
楼主是在调用自己当前方法了,所以不行。
------解决方案--------------------
相当于无穷尽的调用自己重写的方法
LZ早点结贴哦
------解决方案--------------------
多么经典的递归。。。
------解决方案--------------------
人家递归有结束的时候,这个结束不了的~
探讨
多么经典的递归。。。