traveh traveh - 11 months ago 66
Java Question

Unclear inspection warning "NullableProblems" in IntelliJ

Why am I getting a warning from the "NullableProblems" inspection in IntelliJ on this:

public class Test implements Comparable<Test> {
public int compareTo(Test o) {
return 0;

I'm using IntelliJ 14.1.4 and compiling with Java 1.7


enter image description here

before the argument doesn't help:

enter image description here

Answer Source

From Comparable.compareTo:

@throws NullPointerException if the specified object is null

So IntelliJ knows, that the object should not be null and adds a @NotNull annotation automatically:

IntelliJ IDEA will look carefully at SDK and libraries bytecode and will infer these annotations automatically so that they can later be used to analyze source code to spot places where you overlooked null.

Your overriden method doesn't include this annotation, so it overrides this behavior making the parameter nullable - against the contract of the Comparable interface.

You can solve this by adding @NotNull before the parameter.

You can also disable this inspection by pressing Alt + Enter, selecting the warning in the popup menu and selecting Disable inspection in the sub-menu.

Check out the Web Help and this thread for more information about @NotNull / @NonNull annotations.