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
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.
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
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>