Inspectopedia Help

Missing '@Override' annotation

Reports methods overriding superclass methods but are not annotated with @java.lang.Override.

Annotating methods with @java.lang.Override improves code readability since it shows the intent. In addition, the compiler emits an error when a signature of the overridden method doesn't match the superclass method.

Example:

class X { public String toString() { return "hello world"; } }

After the quick-fix is applied:

class X { @Override public String toString() { return "hello world"; } }

Configure the inspection:

  • Use the Ignore 'equals()', 'hashCode()' and 'toString()' option to ignore these java.lang.Object methods: equals(), hashCode(), and toString(). The risk that these methods will disappear and your code won't be compiling anymore due to the @Override annotation is relatively small.

  • Use the Ignore methods in anonymous classes option to ignore methods in anonymous classes.

  • Disable the Highlight method when its overriding methods do not all have the '@Override' annotation option to only warn on the methods missing an @Override annotation, and not on overridden methods where one or more descendants are missing an @Override annotation.

This inspection depends on the Java feature 'Annotations' which is available since Java 5.

Inspection options

Here you can find the description of settings available for the Missing '@Override' annotation inspection, and the reference of their default values.

Ignore 'equals()', 'hashCode()' and 'toString()' methods

Default: Selected

Ignore methods in anonymous classes

Not selected

Highlight method when its overriding methods do not all have the '@Override' annotation

Default: Selected

Inspection Details

By default bundled with:

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin:

Java, 241.16690

Last modified: 29 April 2024