gpt4 book ai didi

java - 订阅事件和多态性触发两次

转载 作者:太空宇宙 更新时间:2023-11-04 12:43:13 34 4
gpt4 key购买 nike

我最近通过切换到 eventbus 更改了我的应用程序,以减少对应用程序其他部分的依赖。现在我看到一个奇怪的问题,我不知道它是绿色机器人事件总线的错误还是预期功能。

假设我有一个事件 A 和事件 B,那么事件 B 扩展了 A,因为 A 是类型 A 的通用事件。我的帮助器类订阅了事件 A 和 B,我所看到的是它触发 B,然后触发 A。有没有办法在保持多态性的同时防止这种情况发生,而不是检查它是否是通用订阅监听器中的一个实例?如果需要在多个类中处理它,我将 A 事件用作类型广播。

谢谢

最佳答案

我知道这是一篇旧帖子,但您可以通过像这样设置事件总线来做到这一点:

 EventBus EVENT_BUS = new EventBus().builder().eventInheritance(false).installDefaultEventBus();

这里的关键是 eventInheritance(Boolean) 方法。我也遇到了同样的问题,当我以这种方式构建总线实例时,只有您订阅的事件才会触发。因此,如果您触发事件 B,则只有事件 B 订阅者才会触发,而不会触发事件 A。

关于java - 订阅事件和多态性触发两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36612214/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com