Annotation Interface 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: