這發生在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