Java 循环引用 - 无法编译

标签 java circular-dependency

文件:A.java

class A
{
    B b;
    public A() {
        b = new B();
    }
}

文件:B.java

class B
{
    public B() {}
    public foo(A a) {...}
}

上面的代码无法编译,因为A需要B才能编译,B需要A才能编译。两者都不应先于对方编译。现在怎么办?

这个例子很简单。我可以删除 foo(A a) {...} 这样的 B.java 会编译。然后编译A.java。恢复 B.java 然后编译它。但我正在尝试从源代码构建 RXTX,它的依赖项是一个由曲折的小短语组成的迷宫。

我曾希望我可以编译成非工作类代码。然后将定义的所有类和方法再次编译成工作代码。

有 Elixir 吗?

最佳答案

如果您同时编译它们,它们应该可以正常编译:

javac A.java B.java

关于Java 循环引用 - 无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18218664/

相关文章:

vb.net - 如何解决循环依赖

java - 给定一个 hashmap 的对象 id,获取 hashmap 中键的字段

Java方法参数和返回类对象

php - 数据映射器模式中 Symfony 依赖注入(inject)组件的循环依赖

objective-c - 解决循环依赖

delphi - 绕过第 3 方循环 dll 依赖项?

java - 如何在java swing中对jComboBox元素进行排序?

java - Jar 文件在解压运行良好时无法执行并出现 NullPointerException

java - 安卓 AllowBackup 错误

具有 "russian dolls"组件的 Angular 循环依赖