我需要像这样简单的东西
@Produces
@Annotated(Licensed.class) //Qualifier
public Set<Class<?>> getLicensedClasses() {
return licensed;
}
然而,这不起作用。 CDI的行为符合文档:
如果生产者字段类型包含通配符类型参数,容器会自动检测问题并将其视为定义错误。
在代码段中设置包含通过反射获得的一堆类。它是一组用@Licensed
注释注释的类。
答案 0 :(得分:3)
只需删除通配符:
@Produces
@Annotated(Licensed.class) //Qualifier
public Set<Class> getLicensedClasses() {
return licensed;
}