Annotation Type DefaultQualifier
-
@Documented @Retention(SOURCE) @Target({PACKAGE,TYPE,CONSTRUCTOR,METHOD,FIELD,LOCAL_VARIABLE,PARAMETER}) @Repeatable(List.class) public @interface DefaultQualifier
Applied to a declaration of a package, type, method, variable, etc., specifies that the given annotation should be the default. The default is applied to type uses within the declaration for which no other annotation is explicitly written. (The default is not applied to the "parametric locations": class declarations, type parameter declarations, and type parameter uses.) If multipleDefaultQualifier
annotations are in scope, the innermost one takes precedence. DefaultQualifier takes precedence overDefaultQualifierInHierarchy
.You may write multiple
@DefaultQualifier
annotations (for unrelated type systems, or with differentlocations
fields) at the same location. For example:@DefaultQualifier(NonNull.class) @DefaultQualifier(value = NonNull.class, locations = TypeUseLocation.IMPLICIT_UPPER_BOUND) @DefaultQualifier(Tainted.class) class MyClass { ... }
Defaults on a package also apply to subpackages, unless the
applyToSubpackages
field is set to false.This annotation currently has no effect in stub files.
- See Also:
TypeUseLocation
,DefaultQualifierInHierarchy
,DefaultFor
- See the Checker Framework Manual:
- Default qualifier for unannotated types
-
-
Required Element Summary
Required Elements Modifier and Type Required Element Description java.lang.Class<? extends java.lang.annotation.Annotation>
value
The Class for the default annotation.
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description boolean
applyToSubpackages
When used on a package, whether the defaults should also apply to subpackages.TypeUseLocation[]
locations
Returns the locations to which the annotation should be applied.
-
-
-
Element Detail
-
value
java.lang.Class<? extends java.lang.annotation.Annotation> value
The Class for the default annotation.To prevent affecting other type systems, always specify an annotation in your own type hierarchy. (For example, do not set
Unqualified
as the default.)
-
-
-
locations
TypeUseLocation[] locations
Returns the locations to which the annotation should be applied.- Returns:
- the locations to which the annotation should be applied
- Default:
- {org.checkerframework.framework.qual.TypeUseLocation.ALL}
-
-