Eclipse中的编译错误在Kotlin + Java项目中,但项目使用Maven构建
这发生在Eclipse中的Java和Maven项目中,具有kotlin特性。
在这部分代码中:
val faces = figure.getFaces() for (polygon in faces) { //...
我在eclipse中得到了下面的错误,在上面第二行的faces
,用红色下划线:
Cannot access class 'Polygon'. Check your module classpath for missing or conflicting dependencies
该项目是Java和Kotlin的混合。 figure
对象是Java类的一个实例,而faces
则是一个类型为Polygon
的集合,它在不同的纯Kotlin项目中(即Polygon
是Kotlin类型,在一个单独的Kotlin项目中)。
Polygon
所在的这个Kotlin项目确实是在类路径中作为一个Maven依赖项,而实际上由其中的Java类所使用的figure
是一个实例。
我认为这个问题是在Eclipse中,因为我可以成功地用maven构建项目。 它看起来像是在eclipse或配置问题中的错误。
我知道有一个Java和Kotlin的混合是很奇怪的。 我只是用Java开始这个项目,然后决定逐渐将它转换成Kotlin。 到目前为止,我还没有很多的问题,但我知道,在Eclipse中的Kotlin工具和支持还不成熟。
没有什么合适的解决方案:我将我的Figure
类转换为Kotlin,问题消失了,但是我可以这样做,因为我完全控制了我的项目。
可能新版本的eclipse插件不会产生这个错误,或者如注释所示,切换到IntelliJ IDEA是另一种选择。