我有以下类(class):
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 {
}
我在 ConsumerClass 的 MyMap 和 HashMap 的属性处得到错误的不明确注入(inject)点。
怎么可能?我认为注入(inject)类是通过 @MyItem 注释给出的唯一类。
最佳答案
您必须将 MyItem 标记为 CDI Qualifier,否则此注释将无用。
@Qualifier
@Retention(RUNTIME)
public @interface MyItem {
}
应该完成这项工作。
关于java - 使用 CDI 的生产者对 HashMap 的注入(inject)不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18751189/