编程语言
首页 > 编程语言> > java-是否有办法知道是否有CDI事件的观察者?

java-是否有办法知道是否有CDI事件的观察者?

作者:互联网

我的UI中有一个按钮,不应总是添加它.它唯一要做的就是单击时触发CDI事件.

现在,如果没有可观察到事件的bean,我想阻止将Button添加到UI.有没有办法查看注入的Event对象上是否有任何观察者或阻止其注入,以便我检查其是否为null?

解决方法:

以下似乎有效:

@Inject
private BeanManager beanManager;

...

Set<ObserverMethod<? super Document>> observers = 
    beanManager.resolveObserverMethods(
        new Document(), new AnnotationLiteral<Any>() {});
observers.isEmpty();

(尽管它可能不是最佳的体系结构.稍后,您可能会有一个观察者,该观察者只是一个空的实现,或者只是根据运行时条件忽略该事件.)

标签:cdi,events,java
来源: https://codeday.me/bug/20191121/2052372.html