【问题标题】:Can I @Inject a generic type?我可以@Inject 泛型类型吗?
【发布时间】:2012-05-22 14:29:05
【问题描述】:

这似乎不起作用:

@Inject
private MyBBean<OtherBBean> myBean;

它应该有效还是尝试这样做是错误的? 我收到此错误:

Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [MyBBean<OtherBBean>] with qualifiers [@Default] at injection point [[field] @Inject private com.my.project.beans.jsf.BreakBBean.myBBean]

编辑: 添加更多信息:

@Named(value="org")
@SessionScoped
public class OrgBBean extends MainViewBase<Org> implements Serializable {

    private static final long serialVersionUID = 1L;
    @Inject
    private OtherBBean otherBBean;
}


@Named
@Dependent
public class OtherBBean extends OrgTabMemberBBean<Other> implements Serializable {

    private static final long serialVersionUID = 1L;
    @Inject
    private MyBBean<OtherBBean> myBBean;
}


@Named
@Dependent
public class MyBBean <O extends EditableBase<? extends BaseEntity>> extends EditableTabListBBean<My, O> implements Serializable {

    private static final long serialVersionUID = 1L;
}

【问题讨论】:

    标签: java jakarta-ee cdi jboss7.x jboss-weld


    【解决方案1】:

    在这里测试并且工作正常。你是不是错过了什么,比如忘记在 MyBBean 类中添加 @Named,或者可能在 @SessionScoped bean 中使用它而 MyBBean 没有实现 Serializable?

    编辑:你能发布你的 MyBBean 代码吗?

    【讨论】:

      【解决方案2】:

      我只使用原始类型来解决这个问题。它有效,但现在我必须小心我如何使用它。

      @Inject
      private MyBBean myBBean;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-12-11
        • 1970-01-01
        • 2011-08-13
        • 1970-01-01
        • 2010-10-13
        相关资源
        最近更新 更多