今天学习java String时,遇到书上讲的一个递归问题,先上代码
import java.util.*;
public class InfiniteRecursion {
public String toStirng() {
return "InfiniteRecursion address: "+ this +"\n";
}
public static void main(String[] args) {
List<InfiniteRecursion> list = new ArrayList<InfiniteRecursion>();
for(int i = 0; i <2; i++)
list.add(new InfiniteRecursion());
System.out.println(list);
}
}
书上讲到在toString()方法里面,编译器会将this转化为String,而转换时会调用toString()方法,这样就产生了递归调用。。我思考了也这么觉得,,但是运行代码时没有报错。把this换成super.toString()也能运行。求请教,为什么没有递归(书上讲的java SE5,我的编译器是1.7的)。