java - 订阅事件总线

标签 java guava

我正在尝试使用 Guava 订阅 EventBus。试图查看网站文档,但看不到任何说明如何操作的示例。

有人试过这个吗??

private final EventBus eventBus = new EventBus();
eventBus.post(eventId); // where eventId is a string.

这是在其中一个 jar 里。现在我需要订阅这个事件总线并检查是否有任何新的 eventId 发布。我该怎么做?

感谢任何帮助。

谢谢!!

最佳答案

您需要一些带有注释方法的对象 @Subscribe,该对象采用类型为 String 的参数(因为您发布的是 String作为它的事件......请注意,一些更具体的事件类型可能更可取)。然后您需要将该对象传递给 EventBus.register(Object)方法。示例:

public class Foo {
  @Subscribe
  public void handleEvent(String eventId) {
    // do something
  }
}

Foo foo = ...
eventBus.register(foo);
eventBus.post(eventId);

关于java - 订阅事件总线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7748618/

相关文章:

java - 尝试用Java创建一个旋转的转轮

JavaFX LineChart 在高值处显示空白

java - 有没有办法为 Guava 表使用 for-each 结构?

elasticsearch - 由于 Guava 库版本不同,Spark on YARN与Elasticsearch TransportClient发生冲突

java - 在同一个 Maven 项目中使用多个 Guava 版本

java - 如何使用hibernate从spring mvc应用程序中的数据库获取引用数据?

java - 递归的正确使用

java - 非静态方法不能在静态上下文中引用

java - Guava 中没有 SortedMultiMap 吗?

java - ImmutableMap 构建器如何创建抽象类的实例?