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