测试情景
IDEA工程中建立如下三个模块:
- 模块A
- 一个接口 ColorInterface,只有一个方法print()
- 模块B
- 一个类 RedColor 实现了 ColorInterface的print()方法,因此需要依赖模块A
- 模块C
- 一个类TestIdeaDependcy,主方法创建了RedColor对象,并调用RedColor的方法print(),因此需要依赖模块B
图文介绍
依赖截图
模块B依赖模块A,模块C依赖模块B
编译错误
代码上提示Cannot access XXX
,从网上搜索到结果说是IDEA的bug,重启即可,但实际这里的问题是模块依赖问题,而不是idea的bug
控制台打印的错误找不到XXX的类文件
,这个错误提示比较明显了,就是说明编译时找不到ColorInterface的类文件,因此模块C也需要依赖模块A才可以编译通过。
结论
- IDEA编译不会传递模块依赖,而Eclipse编译是传递工程依赖的。
-
仅仅创建对象并不会触发编译错误,但是调用对象的任意方法时,都会出现编译错误提示(原因暂时不知)