【发布时间】:2017-09-05 02:04:46
【问题描述】:
这发生在 Eclipse 中具有 kotlin 特性的 Java 和 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 中项目)。
Polygon 所在的 Kotlin 项目确实作为 Maven 依赖项存在于类路径中,并且实际上由 figure 是其实例的 Java 类使用。
我认为问题出在 Eclipse 中,因为我可以使用 maven 成功构建项目。它看起来像是 Eclipse 中的错误或配置问题。
我知道混合使用 Java 和 Kotlin 很奇怪。我只是用 Java 开始了这个项目,然后决定逐渐将其转换为 Kotlin。到目前为止,我还没有遇到很多问题,但我知道 Eclipse 中的 Kotlin 工具和支持还不成熟。
【问题讨论】:
-
您使用的是最新版本的 Kotlin 吗?如果您使用 PolygonKt 而不是 Polygon,Eclipse 会喜欢它吗?如果这是问题所在,那么您需要更新 Eclipse 配置,以便它使用新版本的 Kotlin 进行语法检查/智能。
-
Eclipse 的 Kotlin 插件已经有几个月没有更新了。也许咬紧牙关,为这个项目转换为 IntelliJ。
-
你能把你的
Polygen-class的完整路径从你的项目的主目录开始。 -
感谢您的回复。我正在使用 v1.1.1。更新的版本不适用于该插件。 @guenhter 我不确定你的意思,该类的项目是另一个 maven 依赖项,来自我的 maven 本地 repo
-
好的,所以
Polygin可以通过 Jar 文件获得。谢谢