生产者使用CDI为HashMap注入Ambiguos

Joh*_*n N 1 java producer cdi

我有以下课程:

public class MyMap extends HashMap {
   public MyMap () { }
   some more methods...
}


@SessionScoped
public ProducerClass implements Serializable {
   @Produces @MyItem  HashMap<A,B> produceItems () { }
}

@Named 
public ConsumerClass {
  @Inject @MyItem HashMap<A,B> property;
}

@Retention(RUNTIME)
public @interface MyItem {
}
Run Code Online (Sandbox Code Playgroud)

我在MyMap和HashMap表单的ConsumerClass中得到错误的模糊注入点.

怎么会这样 ?我认为注入类是通过@MyItem注释给出的唯一.

roe*_*ijn 5

您必须将MyItem标记为CDI 限定符,否则此注释将无用.

@Qualifier
@Retention(RUNTIME)
public @interface MyItem {
}
Run Code Online (Sandbox Code Playgroud)

应该做的工作.