2017-09-05 30 views
0

これはEclipseのkotlinの性質を持つJavaおよびmavenプロジェクトで発生します。コードのこの部分でKotlin + JavaプロジェクトのEclipseでのコンパイルエラーですが、Mavenを使用したプロジェクトビルド

val faces = figure.getFaces()  
    for (polygon in faces) { 
     //... 

Iはfacesは、上記の2行目に、赤で下線が引かれているEclipseで以下のエラー、得る:

Cannot access class 'Polygon'. Check your module classpath for missing or conflicting dependencies 

プロジェクトであるがJavaとKotlinの組み合わせ。 オブジェクトはJavaクラスのインスタンスですが、facesPolygonタイプのセットであり、純粋なKotlin(つまり、別のKotlinプロジェクトのPolygonはKotlinタイプ)です。

PolygonであるこのKotlinプロジェクトは実際にMaven依存としてクラスパスにあり、実際にはfigureがインスタンスであるJavaクラスによって使用されます。

私は正常にmavenでプロジェクトを構築できるので、問題はEclipseにあると思います。それは日食のバグか設定上の問題のようです。

JavaとKotlinが混在しているのは奇妙です。私はJavaでこのプロジェクトを開始し、それを徐々にKotlinに変換することに決めました。これまでのところ、私は多くの問題を抱えていませんでしたが、私はKotlinのツールとサポートがまだ成熟していないことを認識しています。

+0

Kotlinの最新バージョンを使用していますか? Polygonの代わりにPolygonKtを使用するとEclipseはそれを好きですか?それが問題なら、Eclipseの設定を更新して、新バージョンのKotlinを構文チェック/インテリジェンスに使用する必要があります。 –

+0

eclipse用のKotlinプラグインは数ヶ月で更新されていません。多分この弾丸を噛んで、このプロジェクトのIntelliJに変換してください。 – Strelok

+0

プロジェクトのホームディレクトリから始まる 'Polygen'クラスのフルパスを投稿できますか? – guenhter

答えて

0

私のFigureクラスをKotlinに変換して問題はなくなりましたが、私は自分のプロジェクトを完全に制御できるので、私はそれを行うことができます。

おそらく、より新しいバージョンのEclipseプラグインはこのエラーを生成しません。また、コメントに示唆されているように、IntelliJ IDEAへの切り替えも別のオプションです。

関連する問題