使用toString方法打印容器中对象的地址时产生的递归异常

直接上代码【来自《java编程思想》】:

package 无意识的递归;

import java.util.ArrayList;
import java.util.List;

//可以对容器类使用tostring()方法,但是想要打印出容器中每个对象的时候,就要使用this关键字,在这里就会产生意想不到的递归
public class InfinitiRecursion {
public String toString(){
//这时候就会产生异常,因为在‘+’后面是this,就会递归调用该对象的toString方法,产生了异常!
//return "InfinitiRecursion address:"+this+"/n";
//要想修复此方法,就要调用object.toString 方法!如下所示!
return "InfinitiRecursion address:"+super.toString()+"\n";
}
public static void main(String []args){
List<InfinitiRecursion> list=new ArrayList<InfinitiRecursion>();
for(int i=0;i<5;i++){
list.add(new InfinitiRecursion());
}
System.out.println(list);
}

}

你可能感兴趣的:(java)