java - 使用 CDI 的生产者对 HashMap 的注入(inject)不明确

标签 java cdi producer

我有以下类(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/

相关文章:

java - 正确打印多行 xml 节点

java - Java 中停止窗口按键输入延迟

Java zlib解压错误 "unknown compression method"

jsf-2 - ViewScoped bean 的内存泄漏?

cdi - Helidon MP/Microprofile 的启动/关闭 Hook ?

apache-kafka - 无法建立到节点 -1 的连接。经纪人可能不可用。 (org.apache.kafka.clients.NetworkClient)

java - 从 Python 调用 .jar 文件

java - 如果没有 Web 层并因此没有 HTTP session ,CDI 是否有意义?

.NET 消费者/生产者(队列)

mysql - 使用数据库(MySql)的生产者/消费者系统,这可行吗?