无意识无限递归

Posted on 2008-04-09 22:47 xan 阅读(158) 评论(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

只有注册用户登录后才能发表评论。


网站导航:
 

posts - 36, comments - 2, trackbacks - 0, articles - 0

Copyright © xan