Jakarta ee 使用CDI将参数传递给bean

Jakarta ee 使用CDI将参数传递给bean,jakarta-ee,cdi,Jakarta Ee,Cdi,我是CDI的新手。我不知道如何使用CDI转换以下代码 Class Client { void method(){ List<Events> events = getEvents(); I b = new B(events); I c = new C("Hello"); } List<Events> getEvents(){ //Do Something return events; } } Class B

我是CDI的新手。我不知道如何使用CDI转换以下代码

Class Client {

  void method(){
    List<Events> events = getEvents();
    I b = new B(events); 
    I c = new C("Hello"); 
  }

 List<Events> getEvents(){
    //Do Something 
    return events;
  }
}

Class B implements I{

 List<Events> events ;

 B(List<Events> events){
    this.events = events; 
  }
}

Class C implements I{

 String s;
  C(String s){
    this.s = s; 
  }
}

你需要申报生产商

@Produces @Ii(Ii.type.B)
public void produceB {
  return Ii.type.B;
}

@Produces @Ii(Ii.type.C)
public void produceC {
  return Ii.type.C;
}
为了创建事件,您需要注释应使用
@Observes
创建事件的参数。在下面的代码中,您可以看到如何获得已触发事件的列表

@Inject
private List<Event> events;
@Inject
私人列表活动;

但B类如何获得列表?products将只返回新的B()。我使用允许您访问事件列表的代码更新了我的答案。
@Inject
private List<Event> events;