@Documented
@Retention(RUNTIME)
@Target({TYPE,CONSTRUCTOR,FIELD,METHOD,ANNOTATION_TYPE})
public @interface ModulePrivate
This annotation is meant to be applied to publicly accessible elements within the
exported packages of a Java 9+ module that should nevertheless be treated as
module-private. Clients of the module should not use elements annotated
with
@ModulePrivate
. They are meant to be accessed from the non-exported
packages in the module only. Elements annotated with @ModulePrivate
may
disappear or change in any respect without notice in subsequent versions of the
module. Note that this is a @Documented
annotation, so the element's
quasi-invisibility is in a sense part of the module's public API.