@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, 2015, Oracle and/or its affiliates. All rights reserved.