web-dev-qa-db-ja.com

タイプorg.Eclipse.jdt.annotation.NonNullは解決できません。必要な.classファイルから間接的に参照されている

Java 8メソッド参照の二重コロン演算子(::)新しい演算子(例:MyType::new)、Spring Tool Suite(STS)のEclipseでこのエラーが発生します。

タイプorg.Eclipse.jdt.annotation.NonNullは解決できません。必要な.classファイルから間接的に参照されている

このエラーを取り除く方法は?

25
luboskrnac

エラーの説明は、Stephan Herrmannのコメントに記載されています。この問題をよりユーザーフレンドリーにするために、オープンな Eclipseの問題 があります。

解決策は次の依存関係を含めることです:

<dependency>
    <groupId>org.Eclipse.jdt</groupId>
    <artifactId>org.Eclipse.jdt.annotation</artifactId>
    <version>2.0.0</version>
</dependency>
17
luboskrnac

Eclipseには注釈ベースのnull分析と呼ばれる機能があり、注釈(_@NonNull_または_@Nullable_など)を使用してコンパイル時にチェックを行います。このエラーは、クラスパスに注釈がない場合に発生します。

注釈ベースのnull分析機能を使用する予定がない場合は、Eclipseで無効にすることができます。

グローバル設定またはプロジェクト設定を開き、_Java > Compiler > Warnings_に移動します。 _Null analysis_カテゴリで、_Enable annotation-based null analysis_をオフにします。次に、ワークスペースを再構築すると、これらのエラーは再び表示されなくなります。

13
kapex

「null仕様にデフォルトのアノテーションを使用する」を変更することで解決しました

両方のクラス名を入力しました:

javax.annotation.Nonnull
javax.annotation.Nullable
3
Horcrux7