创建对象而不会导致堆栈溢出错误?

时间:2012-11-02 22:40:47

标签: java object stack-overflow

所以,我的主类在运行时调用private Secondary secondary = new Secondary();。在Secondary类中,我在顶部有代码private Main main = new Main();

如何在不引起堆栈溢出错误的情况下使用Secondary类中的所有方法和变量,反之亦然?

注意:它们不在构造函数

2 个答案:

答案 0 :(得分:2)

您的Main类正在创建一个辅助实例,它正在创建一个Main实例...,这会导致堆栈溢出错误。

我认为你只是想让对象互相引用,所以不要在构造函数中创建另一个类的新实例。将引用声明为实例变量,并使用setter方法存储对其他类型对象的现有引用。

答案 1 :(得分:0)

您可以使用builder pattern来处理实例字段的安全(非递归)初始化(通过setter)。