Qualifier
@Target(allowedTargets = [AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.VALUE_PARAMETER ] )
Backported from jakarta inject -
Identifies qualifier annotations. Anyone can define a new qualifier. A qualifier annotation:
- is annotated with {@code @Qualifier}, {@code @Retention(RUNTIME)}, and typically {@code @Documented}.
- can have attributes.
- may be part of the public API, much like the dependency type, but unlike implementation types which needn't be part of the public API.
- may have restricted usage if annotated with {@code @Target}. While this specification covers applying qualifiers to fields and parameters only, some injector configurations might use qualifier annotations in other places (on methods or classes for example).
For example:
@java.lang.annotation.Documented
@java.lang.annotation.Retention(RUNTIME)
@jakarta.inject.Qualifier
public @interface Leather {
Color color() default Color.TAN;
public enum Color { RED, BLACK, TAN }
}See also
@Named