@Documented @Retention(value=RUNTIME) @Target(value={TYPE,PACKAGE}) @Exported public @interface Exported
java.* and
javax.* packages. For example, certain portions of com.sun.* are official parts of the JDK meant to be generally
usable while other portions of com.sun.* are not. This
annotation type allows those portions to be easily and
programmatically distinguished.
If in one release a type or package is
@Exported(true), in a subsequent major release such a
type or package can transition to @Exported(false).
If a type or package is @Exported(false) in a
release, it may be removed in a subsequent major release.
If a top-level type has an @Exported annotation,
any nested member types with the top-level type should have an
@Exported annotation with the same value.
(In exceptional cases, if a nested type is going to be removed
before its enclosing type, the nested type's could be
@Exported(false) while its enclosing type was
@Exported(true).)
Likewise, if a package has an @Exported annotation,
top-level types within that package should also have an
@Exported annotation.
Sometimes a top-level type may have a different
@Exported value than its package.
| Modifier and Type | Optional Element and Description |
|---|---|
boolean |
value
Whether or not the annotated type or package is an exported part of the JDK.
|
Copyright © 2005, 2025, Oracle and/or its affiliates. All rights reserved.