这个小知识点是在Thinking in java上看到了,个人感觉这种情况应该不是很常见,因为从我个人的习惯来讲,很少吧this拼接到字符串中,但是我想当有与其类似的需求时这种情况就很容易发生,而且最要命的是,当出现这种情况时,如果之前没有遇到过或看到过,错误点很难发现。
如下代码:
public String toString(){ return "abc" + this;
}
这个toString()的重写方法从表面上看没什么错误,但是要知道,this与字符串拼接的时候,会调用this的toString()方法,这样很显然就形成了递归调用,而且是没有结束条件的,这样的代码被运行,那你的内存不爆掉才怪呢!
Java的这些小东西非常值得大家研究一下。
|