@ApiStatus.NonExtendable でマークされている API 要素を拡張、実装、またはオーバーライドしているクラス、インターフェース、メソッドを報告します。
@ApiStatus.NonExtendable アノテーションは、クラス、インターフェースまたはメソッドが 拡張、実装、またはオーバーライドしてはならないことを示します。
このようなインターフェースとクラスを内部ライブラリの実装にキャストすることはかなり一般的であるため、クライアントが異なる実装を提供している場合は、ClassCastException がスローされます。
このようなクラスとインターフェースに新規の抽象メソッドを追加すると、クライアントの実装との互換性が失われます。
例:
// 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