我的UI中有一个Button
,不应该总是添加。它唯一能做的就是在点击时触发CDI事件。
现在,如果没有bean观察到该事件,我想阻止将Button
添加到UI。有没有办法查看注入的Event
对象上是否有任何观察者或阻止注入它,以便检查它是否为null
?
答案 0 :(得分:3)
以下似乎有效:
@Inject
private BeanManager beanManager;
...
Set<ObserverMethod<? super Document>> observers =
beanManager.resolveObserverMethods(
new Document(), new AnnotationLiteral<Any>() {});
observers.isEmpty();
(虽然它可能不是最好的架构。稍后你可能会有一个只有一个空实现的观察者,或者只是根据运行时条件忽略该事件。)