Jakarta ee 向CDI可移植扩展中的观察者方法添加观察到的限定符

Jakarta ee 向CDI可移植扩展中的观察者方法添加观察到的限定符,jakarta-ee,cdi,Jakarta Ee,Cdi,我在可移植CDI扩展中使用以下代码向观察者方法声明添加“默认”限定符 void processObserverMethod(@Observes ProcessObserverMethod<? extends ConfigurableEvent<?>, ?> observerMethod) { Set<Annotation> qualifiers = observerMethod.getObserverMethod().getObservedQualif

我在可移植CDI扩展中使用以下代码向观察者方法声明添加“默认”限定符

void processObserverMethod(@Observes ProcessObserverMethod<? extends ConfigurableEvent<?>, ?> observerMethod) {
    Set<Annotation> qualifiers = observerMethod.getObserverMethod().getObservedQualifiers();
    if (!qualifiers.contains(new AnnotationLiteral<Special>() {})) {
        qualifiers.add(new AnnotationLiteral<Normal>() {});
    }
void processObserverMethod(@Observes processObserverMethod,?>observerMethod){
设置但焊接人员告诉我CDI规范不支持这一点


有人知道实现相同结果的其他方法吗?

我对这些限定符的用途感到困惑。一种可能的方法是在有效载荷中保留限定符列表。虽然你必须检查两个位置,但它会起作用。我认为拦截器也会起作用。焊接问题是什么?。NM我明白了。是的,现在禁止在CDI 1.1规范中重写观察者方法。@LightGuard:目标是避免在触发
特殊
限定事件时执行不声明
特殊
的观察者方法,而不显式声明只观察
正常
事件。谢谢提示@JohnAment:我实际上使用了两者的结合,限定符保存在事件本身中,拦截器在触发特殊事件时抑制正常方法的执行。谢谢你的建议。