@Target(value={TYPE,METHOD,CONSTRUCTOR,PACKAGE})
@Retention(value=SOURCE)
public @interface AnnotatedFor
@AnnotatedFor({"nullness", "regex"})
indicates that the class has been annotated with
annotations such as @Nullable
and @Regex
. 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, the -AuseDefaultsForUncheckedCode=source
command-line argument has no
effect on classes with a relevant @AnnotatedFor
annotation: any unannotated location is
defaulted normally (typically using the CLIMB-to-top rule), and typechecking warnings are issued.
@AnnotatedFor
's arguments are any string that may be passed to the -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.
Modifier and Type | Required Element and Description |
---|---|
java.lang.String[] |
value |
public abstract java.lang.String[] value
-processor
command-line argument: the
fully-qualified class name for the checker, or a shorthand for built-in checkers.