CDIイベントでクラス継承を使用する方法はありますか?
私がこのようなものを持っているとしましょう:
public class ParentEvent{}
public class ChildEvent extends ParentEvent{}
そしてこのようなもの:
public class Manager(){
@Inject
private Event<ParrentEvent> event;
public void foo(){
event.fire(new ParentEvent());
}
public void bar(){
event.fire(new ChildtEvent());
}
}
public class Observer{
public void observesParent(@Observes ParentEvent event){
//do something
}
public void observesChild(@Observes ChildEvent event){
//do something
}
}
この場合、ParentEventとChildEventの両方がobservesParent()によって処理されます-Managerクラスのイベント属性のタイプが原因です。両方のオブザーバーメソッドでChildEventを監視する方法はありますか?