Qualifier

  • 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