@Injects @Dependent类的类如何将信息传递给它的构造函数?

时间:2013-12-12 16:21:16

标签: cdi jboss-weld qualifiers

我的问题最好用一些示例代码解释:

@Named
public class Search {
    @Inject @Select(Type.SEARCH)
    private Criteria criteria;
}

@Named
public class Selection {
    @Inject @Select(Type.SELECTION)
    private Criteria criteria;
}

public class Criteria {
    private final List<Selection> statics;
    private final List<Selection> choosables;

    @Inject
    public Criteria(
            @Any Instance<List<Selection>> statics,
            @Select(Type.CHOOSABLE) List<Selection> choosables,
            InjectionPoint ip) {
        Select sel = ip.getAnnotated().getAnnotation(Select.class);
        this.statics = cloneList(statics.select(sel).get());
        choosables = cloneList(choosables);
    }
}

这个想法是Criteria具有处理Selection对象列表的所有逻辑,但是要管理的实际列表取决于Criteria类的用户。目前,Weld抱怨无法找到具有匹配限定符的类,因为Criteria未注释@Select。那么 - 无论Criteria限定符,我都能使@Select符合注射条件吗?或者是否有另一种方法可以将这条信息传递给Criteria类?

编辑结果显示,问题已经以类似的形式提出here

0 个答案:

没有答案