java - 同一类的多个实例从事件总线获取相同的事件
问题描述
我正在使用 greenroot eventbus 在我的应用程序的两个组件之间以异步方式传递事件有效负载,使用@Subscribe注释来订阅事件。问题是,如果具有@Subscribe注释的类的多个实例注册到事件总线,它们都接收相同的事件有效负载并且计算是多次完成的。(正如我创建的许多实例一样。)
有没有办法让事件总线只向我的类的单个实例提供事件有效负载,即
如果我的订阅方法如下所示:
public class A {
A() {
eventBus.register(this);
}
@Subscribe
public void consumeEvent(String s) {
// do something
}
}
如果我创建 5 个 A 类实例,并将 5 个字符串传递给事件总线,则所有订阅的实例都应该得到 1 个实例。
由于多个对象,有没有办法可以避免这种冗余计算?
解决方案
推荐阅读
- java - 如何以编程方式在执行程序节点中查找 Spark 版本?
- sql - 如何使用 PL/SQL 选择插入多行
- c# - 从c#中的嵌套无限foreach循环获取结果
- javascript - 如何在生成的构建中调试 javascript 错误
- electron - 在 archlinux LXDE 启动时自动启动电子应用程序
- npm - @angular/cli npm 安装错误
- php - 使用 PHP 获取几个 XML 属性
- javascript - 如何检测屏幕 JavaScript 中没有触摸?
- c# - EditorUtility.OpenFilePanel 执行两次
- arrays - 类型检查变量和数组