The type org.eclipse.jdt.annotation.NonNull cannot be resolved. It is indirectly referenced from required .class files

前端 未结 3 443
广开言路
广开言路 2021-02-01 17:24

When I use the Java 8 method reference double colon operator (::) with new operator (e.g. MyType::new), I get this error in Eclipse of Spring Tool suit

相关标签:
3条回答
  • 2021-02-01 17:45

    Eclipse has a feature called annotation-based null analysis, which provides compile-time checks using annotations (e.g. @NonNull or @Nullable). You get this error when annotations are missing in the classpath.

    If you don't plan to use the annotation-based null analysis feature, you can just disable it in Eclipse.

    Open the global or project settings and go to Java > Compiler > Warnings. In the Null analysis category, uncheck Enable annotation-based null analysis. Then rebuild the workspace and those errors won't show again.

    0 讨论(0)
  • 2021-02-01 17:45

    I have solved it by changing the "Use default annotation for null specifications"

    I have enter the both class names:

    javax.annotation.Nonnull
    javax.annotation.Nullable
    
    0 讨论(0)
  • 2021-02-01 17:53

    Error description is provided in Stephan Herrmann's comment. There is open Eclipse issue to make this issue more user friendly.

    Solution is to include following dependency:

    <dependency>
        <groupId>org.eclipse.jdt</groupId>
        <artifactId>org.eclipse.jdt.annotation</artifactId>
        <version>2.0.0</version>
    </dependency>
    
    0 讨论(0)
提交回复
热议问题