2014-02-26 136 views
0

製作方法,我需要一些簡單的像這樣使用通配符類型

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

然而,這是行不通的。 CDI根據文檔進行操作:

如果生產者字段類型包含通配符類型參數,容器會自動檢測問題並將其視爲定義錯誤。

在片段中設置包含通過反射獲得的一堆類。它是用@Licensed註釋標註的一組類。

+0

「這行不通」你能解釋一下它怎麼不工作好一點?例如,你看到了什麼錯誤或不良行爲? –

+0

由於方法返回類型中的通配符泛型,CDI拒絕將此生產者方法視爲無效。 – viktor

回答

2

剛落通配符:

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