Inspectopedia 2025.3 Help

Method can only be overridden

Reports calls to API methods marked with @ApiStatus.OverrideOnly.

The @ApiStatus.OverrideOnly annotation indicates that the annotated method is supposed to be implemented or overridden by client code, but not called by it directly. This pattern commonly appears in extension mechanisms where your implementation must conform to some interface, but it's not your responsibility to call it. One example of such an extension mechanism is the Service Provider Interface. Marking a class or interface with this annotation is the same as marking every method with it.

The @ApiStatus.OverrideOnly annotation indicates that the method is part of SPI (Service Provider Interface). Clients of the declaring library should implement or override such methods, not call them directly. Marking a class or interface with this annotation is the same as marking every method with it.

Example:

// In upstream library code @ApiStatus.OverrideOnly public class MyService { public void perform(); } // In downstream client code public class Foo { public void bar(myService: MyService) { myService.perform(); } }

This inspection also detects the following problems related to applying the annotation incorrectly:

  • Annotating classes/methods that cannot be extended/overridden

  • Redundantly annotating methods from a class already annotated with @ApiStatus.OverrideOnly

Locating this inspection

By ID

Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.

OverrideOnly
Via Settings dialog

Path to the inspection settings via IntelliJ Platform IDE Settings dialog, when you need to adjust inspection settings directly from your IDE.

Settings or Preferences | Editor | Inspections | JVM languages

Inspection ID: OverrideOnly

Suppressing Inspection

You can suppress this inspection by placing the following comment marker before the code fragment where you no longer want messages from this inspection to appear:

//noinspection OverrideOnly

More detailed instructions as well as other ways and options that you have can be found in the product documentation:

Inspection Details

By default bundled with:

IntelliJ IDEA 2025.3, Qodana for JVM 2025.3,

Last modified: 03 December 2025