【发布时间】:2013-08-13 20:31:28
【问题描述】:
文件: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,它的依赖项是一个曲折的小短语迷宫。
我曾希望我可以编译为非工作类代码。然后将所有定义的类和方法再次编译成工作代码。
有灵丹妙药吗?
【问题讨论】:
-
这应该在 Java 中编译得很好。
-
这确实在Java中编译得很好,除了
public foo(A a) {...}的编译错误(缺少返回类型)。 -
循环部。不好,但它们可以编译。
-
你的 foo 应该是 void foo(...) ,但我猜你已经知道了。
-
魔法子弹的拼写是 c l a s s p a t h :)