toString方法导致的递归调用,tostring递归调用
分享于 点击 35625 次 点评:286
toString方法导致的递归调用,tostring递归调用
1. 在toString方法中使用this关键字,导致的递归,见代码:
package string;
public class InfiniteRecursion {
@Override
public String toString() {
//this关键字会调用this.toString()方法,产生递归
//修改为super.toString()
return "InfiniteRecursion : " + this;
}
public static void main(String[] args) {
InfiniteRecursion ir = new InfiniteRecursion();
System.out.println(ir.toString()); //Exception in thread "main" java.lang.StackOverflowError
}
}
//output
Exception in thread "main" java.lang.StackOverflowError
2. 分析:"InfiniteRecursion : " + this 表示字符串连接,会调用this.toString()方法,产生递归
相关文章
- 暂无相关文章
用户点评