Annotation Type ApiStatus.Experimental


  • @Documented
    @Retention(CLASS)
    @Target({TYPE,ANNOTATION_TYPE,METHOD,CONSTRUCTOR,FIELD,PACKAGE})
    public static @interface ApiStatus.Experimental

    Indicates that a public API of the annotated element (class, method or field) is not in stable state yet. It may be renamed, changed or even removed in a future version. This annotation refers to API status only, it doesn't mean that the implementation has an 'experimental' quality.

    It's safe to use an element marked with this annotation if the usage is located in the same sources codebase as the declaration. However, if the declaration belongs to an external library such usages may lead to problems when the library will be updated to another version.

    If a package is marked with this annotation, all its containing classes are considered experimental. Subpackages of this package are not affected and should be marked independently.

    If a type is marked with this annotation, all its members are considered experimental, but its inheritors are not.

    If a method is marked with this annotation, overriding methods are not considered experimental.