Posted on 2008-04-09 22:47
xan 阅读(166)
评论(0) 编辑 收藏 所属分类:
Java
public class InfiniteRecursion{
public String toString(){
return "InfiniteRecursion"+this+"\n";
}
public static void main(String[] args){
ArrayList al=new ArrayList();
al.add(new InfiniteRecursion());
System.out.println(al);
}
}
问题在于String的自动类型转换,return "InfiniteRecursion"+this+"\n" 编译器见String后跟着一个‘+’,‘+’之后的不是String,于是编译器尝试将this转换为String,将调用InfiniteRecursion的toString()方法,从而造成递归。
zz thinking in JAVA