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是另一种选择。