Annotation Type Qualifier


  • @Target(ANNOTATION_TYPE)
    @Retention(RUNTIME)
    @Documented
    public @interface Qualifier
    Identifies qualifier annotations. Anyone can define a new qualifier. A qualifier annotation:
    • is annotated with @Qualifier, @Retention(RUNTIME), and typically @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 @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