【问题标题】:How can I share an EventBus for a Java and a GWT project at the same time?如何同时为 Java 和 GWT 项目共享 EventBus?
【发布时间】:2015-02-03 13:30:43
【问题描述】:

我有一个使用Guava EventBus 的java 项目。现在我想使用这个项目中的代码来使用 GWT 而无需重写它。我知道 GWT 有自己的 EventBus,但我无法更改 Java 项目中的导入,因为这会破坏 Java 项目。

在我的 GWT 项目中,我包含了 guava 和 gwt-guava jars。我还包括:

<inherits name="com.google.common.collect.Collect"/>

在我的 gwt.xml 文件中。 Guava 至少为 GWT 项目中的其他类(例如字符串)工作。

我想使用 Guava 的 EventBus 而不是 GWT 提供的。我需要这个,因为我的 Java 项目不能与那个 GWT EventBus 一起工作。 问题是 GWT 项目使用 GWT EventBus 而 Java 项目使用 Guava EventBus。我如何把这些东西放在一起?如果我能以某种方式从我的 GWT 项目中的 Java 项目中替换 Guava EventBus,那就太好了。

如何在 GWT 中使用 Guava EventBus? 有没有办法在不更改其他 Java 项目中的依赖项的情况下使用它?

【问题讨论】:

  • 哪个部分不工作?你想达到什么目的?使用 Guava 的 EventBus 代替 GWT 的?就像在ActivityManager 中一样,在小部件上绑定事件等?这显然行不通,因为它们不共享任何基类。
  • @IgorKlimer 我想使用 Guava 的 EventBus 而不是 GWT 提供的。我需要这个,因为我的 Java 项目无法使用该 GWT EventBus。
  • @IgorKlimer 问题是 GWT 项目使用 GWT EventBus 而 Java 项目使用 Guava EventBus。我如何把这些东西放在一起?如果我能以某种方式从我的 GWT 项目中的 Java 项目中替换 Guava EventBus,那就太好了。
  • 它们在任何方面都不兼容 - 具有不同的接口、不同的事件等。您认为这应该如何工作?这就像期望一个,嗯,图表库可以与另一个互换,只是因为它们都处理图表?
  • 那么什么是替代解决方案?

标签: java javascript gwt guava


【解决方案1】:

Guava 的 EventBus 在 GWT 客户端代码中不可用。 (你可以说是因为it doesn't have the @GwtCompatible annotation。)

有时可以使 GWT 下不可用的类可用。不过EventBus 使用 Java 反射,这在 GWT 下大多不可用,因此无法使其可用。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-20
  • 2011-04-08
  • 2023-02-19
  • 1970-01-01
相关资源
最近更新 更多