Search code examples
javaeclipsejava-8spring-tool-suitemethod-reference

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


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 suite (STS):

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

How to get rid of this error?


Solution

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