比如下面两个类,文件名分别为A.java与B.java:
public class A{
public static B b = new B();
public static void main(String[] agrs){
System.out.println(b);
}
}
public class B{
public A a;
}
在用javac编译的时候,先编译A会报错,因为B还没有编译。先编译B也会报错,因为A没有编译。如下图所示:
这可怎么办呢?源代码本身就语法错误?Hibernate的两边一对一不就是类似于这个吗?可见并不是语法错误。
正确的编译方法是什么呢?
如下图
可以看到javac是可以同时编译多个文件的,对于那些不能按顺序编译的,就是用这种方法编译的。Eclipse的原理也就是在这里了。