Java 对象的递归实例化?

Java 对象的递归实例化?,java,Java,上面的代码给出了一个堆栈溢出错误..那么到底是什么呢 这里发生了什么?obj2被实例化,它也被实例化 obj1和obj1然后再次实例化ran类和 一条链条形成了 如果是这样,是否有一种不将obj1设为静态的解决方法 在巴迪气垫船的特别要求下。。 edit to question=我试图复制一个自引用结构,就像c/c++在链表中使用的结构一样看起来您正在尝试构建一个类似列表的结构 通常的模式是: public class ran { ran obj1 = new ran();//will

上面的代码给出了一个堆栈溢出错误..那么到底是什么呢 这里发生了什么?obj2被实例化,它也被实例化 obj1和obj1然后再次实例化ran类和 一条链条形成了

如果是这样,是否有一种不将obj1设为静态的解决方法

在巴迪气垫船的特别要求下。。
edit to question=我试图复制一个自引用结构,就像c/c++在链表中使用的结构一样

看起来您正在尝试构建一个类似列表的结构

通常的模式是:

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);

    }

}

如果不是,那么你应该考虑在RAN类中构造递归对象的数据,而不是构造递归对象。

当你发现自己处于这样的情况下,在有人死之前,你应该离开一切,重新考虑你的设计。为什么你要尝试递归地这样做,因为这是一个糟糕的设计,如果这样做,总是会导致堆栈溢出?你的问题是一个经典,你需要告诉我们你的目标是什么,而不是你如何去解决它,因为你现在的方法是偏离了基础。新鲜的C++和指针……所以尝试了一个类似的结构……不想实现任何事情。只是随便看看Java.做起来真是太糟糕了。(戳,不是问这个问题):P
“我什么都不想做,只是用java戳”
--好的,那么你已经学会了如何递归地创建导致堆栈溢出的对象。任务完成了,现在开始学习一些有用的东西。哦,来吧,我不是在这里和你们玩捉迷藏。我尝试了同样的方法,将obj1实例化放在main中,但后来我不得不将其设置为静态…当我将obj1的实例化nside ran的构造函数..再次递归!请将main移出ran,为ran提供自己的类
class Ran {
    Ran obj1 = null;
    Ran() { initializer } }
    void setObj1(Ran obj1) { this.obj1 = obj1; }
}