这发生在Eclipse中具有kotlin特性的Java和maven项目中。在Kotlin + Java项目中的Eclipse中编译时出错,但项目使用Maven编译
在这部分代码:
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项目中)。
这个Kotlin项目其中Polygon
是,的确是在类路径中作为Maven依赖项,实际上由其中figure
是其中一个实例使用的Java类。
我认为问题出在Eclipse上,因为我可以用maven成功构建项目。它看起来像是在eclipse中的错误或配置问题。
我知道把Java和Kotlin混合起来很奇怪。我只是用Java开始这个项目,然后决定逐渐将它转换为Kotlin。到目前为止,我还没有遇到很多问题,但我知道,Eclipse中的Kotlin工具和支持还不成熟。
您使用的是最新版本的Kotlin吗? Eclipse是否喜欢它,如果你使用PolygonKt而不是Polygon?如果这是问题,那么您需要更新您的Eclipse配置,以便它使用新版本的Kotlin进行语法检查/ intelliensing。 –
eclipse的Kotlin插件尚未在几个月内更新。也许咬一口,并转换为IntelliJ这个项目。 – Strelok
你可以从你的项目的主目录开始发布'Polygen'类的完整路径吗? – guenhter