黑马程序员技术交流社区
标题:
String问题
[打印本页]
作者:
邵中国
时间:
2012-3-29 13:31
标题:
String问题
import java.util.*;
public class InfiniteRecursion{
public String toString(){
return"InfiniteRecursion address:" + this + "/n";
}
public static void main(String[] args){
List<InfiniteRecursion> v = new ArrayList<InfiniteRecursion>();
for(int i=0;i<10;i++)
v.add(new InfiniteRecursion());
System.out.println(v);
}
}
运行出错
作者:
马云
时间:
2012-3-29 13:33
本帖最后由 马云 于 2012-3-29 13:36 编辑
我回答:
+this
这句话错了,
this代表的是一个对象,不知道你加this是想达到什么效果!
你也算是高手了,我还没见过在字符串里写this+的
作者:
何万县
时间:
2012-3-29 13:37
import java.util.*;
public class InfiniteRecursion{
public String InfiniteRecursion(){
return"InfiniteRecursion address:" + this + "/n";
}
public static void main(String[] args){
List<InfiniteRecursion> v = new ArrayList<InfiniteRecursion>();
for(int i=0;i<10;i++)
v.add(new InfiniteRecursion());
System.out.println(v);
}
}
作者:
何万县
时间:
2012-3-29 13:38
我认为这样可以,把你的tostring 函数,改成构造函数
作者:
yangshang1
时间:
2012-3-29 13:38
this 就表示你的tostring 重复了
作者:
izwj
时间:
2012-3-29 13:59
要
打印地址值
可以这样写:
import java.util.*;
public class InfiniteRecursion{
public static void main(String[] args){
List<InfiniteRecursion> v = new ArrayList<InfiniteRecursion>();
for(int i=0;i<10;i++)
v.add(new InfiniteRecursion());
System.out.println("InfiniteRecursion address:"+v+ "/n");
}
}
作者:
邵中国
时间:
2012-3-30 15:46
感谢楼上
已找到答案,要打印地址的话,应该用super。String中“+”后面
调用的是this的toString方法,这样就出现了递归调用的场面
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2