我有以下课程:
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 {
}
我在MyMap和HashMap表单ConsumerClass的属性中得到错误的模糊注入点。
怎么可能?我认为注入类是通过@MyItem注释给出的唯一。
答案 0 :(得分:5)
您必须将 MyItem 标记为CDI 限定符,否则此注释将毫无用处。
@Qualifier
@Retention(RUNTIME)
public @interface MyItem {
}
应该做的。