【问题标题】:Java StackOverflow due to infinite initializationsJava StackOverflow 由于无限初始化
【发布时间】:2020-06-10 06:36:18
【问题描述】:

我正在为我的 API 构建一个 SDK,其中有两个模块考虑 A 类和 B 类。

public class A{
    public final B = new B();
    public final A = new A();
    public String nameOfA;
}

public class B{
    public final A = new A();
    public final B = new B();
    public String nameOfB;
}

每个模块内部都有一些字段可以引用其他模块以及它们自己。使用 SDK 的最终用户应该能够执行 A.B.A.nameOfA、B.A.nameOfA 等操作。 但是这些模块类是由工具动态生成的。这会导致 StackOverFlow 错误。 有人可以帮我解决这个问题吗?

【问题讨论】:

  • 你所拥有的那些类永远不能被实例化。如果您的工具正在生成这些,则需要使用其他工具。

标签: java sdk lazy-initialization


【解决方案1】:

经典的无限递归。 你想做的事情在逻辑上是不可能的,而且根本没有任何意义。你能解释一下你想要达到的目标吗?

【讨论】:

    猜你喜欢
    • 2017-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多