【发布时间】:2013-03-05 00:09:41
【问题描述】:
我想创建一个生产者来动态选择我的接口 Hello 的实现。
public interface Hello extends Serializable{
public String sayHello();
}
你好Impls:
public class HelloBanned implements Hello{
@Override
public String sayHello() {
return "Get out!!!";
}
}
public class HelloCoolGuy implements Hello{
@Override
public String sayHello() {
return "Welcome";
}
}
我的 sessionBean,我想要生产者方法的地方:
public class UsuarioHandler implements Serializable{
@Inject
private Usuario usuario;
@Inject
@Preferred
Hello hello;
@EJB
UsuarioBeanLocal userEJB;
public String login(){
usuario.setId(2L);
return userEJB.efetuarLogin(usuario);
}
@Produces
@Preferred
public Hello getHello(@New HelloBanned ban,
@New HelloCoolGuy cool){
if (usuario.isBannedFlag()){
return ban;
}
return cool;
}
}
此代码结果在 StackOverFlow 上。我找不到是什么原因造成的。
【问题讨论】:
-
请发布堆栈跟踪
标签: java jsf jakarta-ee cdi