0

我在可移植 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>() {});
    }

目标是拥有两个相互排斥的限定符Normal,并Special避免Normal在每个观察者声明中声明一个。

该代码在 Weld 1.1 中有效,但在 2.0 中无效。我打开了一个错误,但焊接人员告诉我,CDI 规范不支持这个。

有谁知道实现相同结果的替代方法?

4

0 回答 0