Annotation Type ApiStatus.NonExtendable


  • @Documented
    @Retention(CLASS)
    @Target({TYPE,METHOD})
    public static @interface ApiStatus.NonExtendable

    Indicates that the annotated API class, interface or method must not be extended, implemented or overridden.

    API class, interface or method may not be marked final because it is extended by classes of the declaring library but it is not supposed to be extended outside the library. Instances of classes and interfaces marked with this annotation may be cast to an internal implementing class in the library code, leading to ClassCastException if a different implementation is provided by a client.

    New abstract methods may be added to such classes and interfaces in new versions of the library breaking compatibility with a client's implementations.