java - 具有通配符类型的生产者方法

标签 java generics cdi java-ee-7

我需要这样简单的东西

@Produces
@Annotated(Licensed.class) //Qualifier
public Set<Class<?>> getLicensedClasses() {
    return licensed;
}

但是这不起作用。 CDI 的行为根据文档:

If a producer field type contains a wildcard type parameter the container automatically detects the problem and treats it as a definition error.

片段中的集合包含一堆通过反射获得的类。它是一组使用 @Licensed 注释进行注释的类。

最佳答案

只需删除通配符:

@Produces
@Annotated(Licensed.class) //Qualifier
public Set<Class> getLicensedClasses() {
    return licensed;
}

关于java - 具有通配符类型的生产者方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22051930/

相关文章:

Java 转换实用程序库

C# 泛型方法返回值

java - 如何注入(inject)实现相同接口(interface)的两个不同类的两个实例?

jsf - 是否跨 session 范围的 JSF 支持 bean 观察到 CDI 事件

java - 项目构建错误: Non-resolvable parent POM for org. springframework.boot:spring-boot-starter-parent:[未知版本]:传输失败

java字符串拆分查询

java - 使用 Java 开发 Web 浏览器的先决条件

java - ObjectBox:获取具有特定关系的对象

C# 创建通用 Vector4 类?

java - 在 Wildfly 上的 MyBatis 中使用 REQUIRES_NEW JTA 事务类型