@ApiStatus.NonExtendable.
The @ApiStatus.NonExtendable annotation indicates that the class, interface, or method must not be extended,
implemented, or overridden.
Since casting such interfaces and classes to the internal library implementation is rather common,
if a client provides a different implementation, you will get ClassCastException.
Adding new abstract methods to such classes and interfaces will break the compatibility with the client's implementations.
Example:
// In upstream library code
@ApiStatus.NonExtendable
public interface MyService {
public void perform();
}
// In downstream client code
public class MyServiceImpl implements MyService {
@Override
public void perform() {
// ...
}
}
This inspection also detects the following problems related to applying the annotation incorrectly:
@ApiStatus.NonExtendable