黑马程序员技术交流社区
标题:
toString()方法被无意识递归
[打印本页]
作者:
.ˋMr.Ivan
时间:
2013-12-9 19:47
标题:
toString()方法被无意识递归
这个小知识点是在Thinking in java上看到了,个人感觉这种情况应该不是很常见,因为从我个人的习惯来讲,很少吧this拼接到字符串中,但是我想当有与其类似的需求时这种情况就很容易发生,而且最要命的是,当出现这种情况时,如果之前没有遇到过或看到过,错误点很难发现。
如下代码:
public String toString(){ return "abc" + this;
}
这个toString()的重写方法从表面上看没什么错误,但是要知道,this与字符串拼接的时候,会调用this的toString()方法,这样很显然就形成了递归调用,而且是没有结束条件的,这样的代码被运行,那你的内存不爆掉才怪呢!
Java的这些小东西非常值得大家研究一下。
作者:
胡永城
时间:
2013-12-9 20:27
一般没有这么写代码习惯,多谢分享
作者:
.ˋMr.Ivan
时间:
2013-12-9 20:41
胡永城 发表于 2013-12-9 20:27
一般没有这么写代码习惯,多谢分享
是啊,我也很少看到,但是这种问题如果无意识的犯了,感觉非常难发现
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2