public class ran {
ran obj1 = new ran();//will this create a recursive instantiating of objects??
public String s = null;
public static void main(String[] args) {
ran obj2 = new ran();
obj2.s = "main";
obj2.obj1.s = "secondary";
System.out.println(obj2.obj1.s);
}
}
上面的代码给出了堆栈溢出错误..那么到底是什么
发生在这里? obj2 被实例化,它被实例化
obj1,然后 obj1 再次实例化 ran 类的另一个对象,并且
一条链形成了??
如果是这样,那么是否有一种解决方法,无需将 obj1 设为 static ?
应好友气垫船的特别要求..
编辑问题=我试图复制一个自引用结构,就像链表中的 c/c++ 中使用的结构一样
看来您正在尝试构建类似列表的结构。
通常的模式是:
class Ran {
Ran obj1 = null;
Ran() { initializer } }
void setObj1(Ran obj1) { this.obj1 = obj1; }
}
如果没有,那么您应该考虑在 Ran 类中构造递归对象的数据,而不是构造递归对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)