Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在使用 CDI 并想知道调用者如何被通知观察者观察到或没有观察到事件。如果没有观察者对该事件采取行动,那么我想做点什么。除了提示调用者被通知外,我没有看到文档中的任何地方都记录了这一点。
谢谢,
沃尔特
我不认为调用者被通知(这实际上不是观察者模式的内容)。但是您可以尝试通过以下方式解决此问题:
您可以拥有一个事件对象的字段 -如果它被消耗,则将其private boolean consumed设置为。true然后,(事件被同步处理)在事件生产者中检查该变量。
private boolean consumed
true
从事件生产者观察到的观察者触发一个新事件
如果你想放弃松耦合的好处,并且你确切地知道事件生产者是谁,你可以@Inject把它放到所有的监听器中,让他们调用它上面的方法
@Inject