使用Java EE BeanManager,是否可以获取实例的引用<;AnyClass>;?

使用Java EE BeanManager,是否可以获取实例的引用<;AnyClass>;?,java,java-ee-6,Java,Java Ee 6,我正在尝试使用javax.enterprise.inject.spi.BeanManager以编程方式查找CDI代理 我能够解析除实例之外的所有bean 这是密码 public interface Service { public void doSomething(); } public class Serviceimpl implements Service{ public void doSomething(){ system

我正在尝试使用javax.enterprise.inject.spi.BeanManager以编程方式查找CDI代理

我能够解析除实例之外的所有bean

这是密码

public interface Service {
       public void doSomething();
    }

    public class Serviceimpl implements Service{
        public void doSomething(){
          system.out.println("Impl clazz");
        }
    }

    public class LoginAction{
      @Inject Service svc;

      public void logintest(){
        svc.doSomething();
      }

    }
当我这样做时,同样的功能也可以正常工作

 public class LoginAction{
      public void logintest(){
        Service svc = BeanManager.getReference(Service.class);
        svc.doSomething();
      }

    }
虽然当有多个实现时,我会这样做

  public class LoginAction{
          @Inject Instance<Service> services;
                  public void logintest(){
            for(Service s : services){
                s.doSomething();
            }
          }

        }
公共类登录{
@注入实例服务;
公共无效登录测试(){
服务(s:服务){
s、 doSomething();
}
}
}
而且这个效果非常好。但我正试图通过BeanManager做同样的事情,但它不起作用

 public void logintest(){
       Instance<Service> svc = BeanManager.getReference(Instance<Service>..); // not sure how to program here. This is where help is needed
        for(Service s : services){
            s.doSomething();
        }
      }
public void logintest(){
实例svc=BeanManager.getReference(实例..);//不确定如何在此处编程。这是需要帮助的地方
服务(s:服务){
s、 doSomething();
}
}
尝试以编程/规范方式查找的主要原因是这种逻辑可能位于静态块中