0
我是CDI的新手。我无法弄清楚如何使用CDI转换下面的代码。使用CDI将参数传递给bean
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;
}
}
我使用限定符以避免歧义,但可以找出如何通过从client.Do我需要使用生产者注入列表和串入分别B类和C参数?
@Qualifier
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER})
public @interface Ii {
Type value() ;
public enum Type {
B,
C
}
}
Class Client {
@Inject @Ii(Ii.type.B)
B b;
@Inject @Ii(Ii.type.C)
C b;
}
@Ii(Ii.type.B)
Class B {
}
@Ii(Ii.type.C)
Class C {
}
但是,B类如何获得列表?产品将只返回新的B()。 –
Paneri
我用允许您访问事件列表的代码更新了我的答案。 –