Annotation Interface AnnotatedFor
@Documented
@Retention(SOURCE)
@Target({TYPE,METHOD,CONSTRUCTOR,PACKAGE})
public @interface AnnotatedFor
Indicates that this class has been annotated for the given type system. For example,
@AnnotatedFor({"nullness", "regex"})
indicates that the class has been annotated with
annotations such as @Nullable
and @Regex
. The argument to AnnotatedFor
is
not an annotation name, but a checker name.
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
-AuseConservativeDefaultsForUncheckedCode=source
command-line argument is supplied. Ordinarily,
the -AuseConservativeDefaultsForUncheckedCode=source
command-line argument causes
unannotated locations to be defaulted using conservative 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.
- See the Checker Framework Manual:
- Compiling partially-annotated libraries
-
Required Element Summary
-
Element Details
-
value
String[] valueReturns the type systems for which the class has been annotated. Legal 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.- Returns:
- the type systems for which the class has been annotated
- See the Checker Framework Manual:
- Short names for built-in checkers
-