读书人

关于重写toString,该怎么处理

发布时间: 2012-01-10 21:26:51 作者: rapoo

关于重写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早点结贴哦
[解决办法]
多么经典的递归。。。
[解决办法]
人家递归有结束的时候,这个结束不了的~

探讨
多么经典的递归。。。

读书人网 >J2SE开发

热点推荐