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