比如下面两个类,文件名分别为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的原理也就是在这里了。

 

Logo

聚焦前沿AI与大模型技术探索,汇聚开发者及爱好者,共享开源项目、学习资源与行业资讯。

更多推荐