@Target(value={TYPE,METHOD,CONSTRUCTOR,FIELD}) @Retention(value=RUNTIME) @Documented public @interface API
@API is used to annotate public types, methods, constructors, and
fields within a framework or application in order to publish their
status() and level of stability and to indicate how they are intended
to be used by consumers() of the API.
If @API is present on a type, it is considered to hold for all
public members of the type as well. However, a member of such an annotated
type is allowed to declare a API.Status of lower stability. For example,
a class annotated with @API(status = STABLE) may declare a constructor
for internal usage that is annotated with @API(status = INTERNAL).
| Modifier and Type | Required Element and Description |
|---|---|
API.Status |
status
The current status of the API.
|
public abstract API.Status status
public abstract String[] consumers
The supplied packages can be fully qualified package names or patterns containing asterisks that will be used as wildcards.
Defaults to "*", signifying that the API is intended to be
consumed by any package.