3

ファイル: 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 をビルドしようとしていますが、その依存関係はねじれた小さなフレーズの迷路です。

私は非ワーキング クラス コードにコンパイルできることを望んでいました。次に、定義されたすべてのクラスとメソッドを使用して、動作するコードに再度コンパイルします。

魔法の弾丸はありますか?

4

3 に答える 3

7

両方を一度にコンパイルすると、正常にコンパイルされるはずです。

javac A.java B.java
于 2013-08-13T20:34:44.720 に答える