¿Puedo @Inyectar un tipo genérico?

Parece que esto no funciona:

@Inject
private MyBBean<OtherBBean> myBean;

¿Debería funcionar o simplemente está mal intentar hacer esto? me sale este error:

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]

EDITAR: Agregar más información:

@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;
}

preguntado el 22 de mayo de 12 a las 15:05

2 Respuestas

Probado aquí y funcionó bien. ¿No te perdiste algo, como olvidar agregar @Named en la clase MyBBean, o tal vez usándolo en un @SessionScoped bean y MyBBean no implementa Serializable?

EDITAR: ¿Puedes publicar tu código MyBBean?

contestado el 22 de mayo de 12 a las 15:05

Trabajé alrededor de esto simplemente usando el tipo sin formato en su lugar. Funciona, pero ahora tengo que tener cuidado de cómo lo usé.

@Inject
private MyBBean myBBean;

contestado el 24 de mayo de 12 a las 11:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.