@Documented @Retention(value=SOURCE) @Target(value={TYPE,METHOD,CONSTRUCTOR,PACKAGE}) public @interface AnnotatedFor
@AnnotatedFor({"nullness", "regex"})
indicates that the class has been annotated with
annotations such as @Nullable
and @Regex
.
You should only use this annotation in a partially-annotated library. There is no point to using it in a fully-annotated library nor in an application that does not export APIs for clients.
This annotation has no effect unless the -AuseDefaultsForUncheckedCode=source
command-line argument is supplied. Ordinarily, the -AuseDefaultsForUncheckedCode=source
command-line argument causes unannotated locations to be defaulted using unchecked code defaults,
and it suppresses all warnings. However, a class with a relevant @AnnotatedFor
annotation
is always defaulted normally (typically using the CLIMB-to-top rule), and typechecking warnings
are issued.
public abstract String[] value
-processor
command-line argument: the
fully-qualified class name for the checker, or a shorthand for built-in checkers. Using
the annotation with no arguments, as in @AnnotatedFor({})
, has no effect.