7

这是一个简单的问题,但我遇到了问题......

我正在尝试Objects.equal()在 GWT 客户端代码中使用 Google 通用集合的方法,但我不断收到错误消息

20:12:10.001 [错误] [gwt_regex] 第 39 行:没有可用于类型 com.google.common.base.Objects 的源代码;你忘了继承一个必需的模块吗?

试图向谷歌寻求答案,但找不到任何答案——每个人都只是说“谷歌收藏应该与 GWT 一起工作”。

4

4 回答 4

6

您需要继承模块文件:

<inherits name='com.google.common.Collect.gwt.xml' />

并添加两个集合的源文件和其他 gwt 特定文件。第一个位于项目页面的 zip 文件中,后者位于集合项目主干的 gwt 文件夹中:http ://code.google.com/p/google-collections/source/browse/#svn/trunk/重量

于 2010-03-08T09:14:15.087 回答
3

要解决您的错误(com.google.common.base.Objects 类型没有可用的源代码),您只需要包含 Base GWT 模块:

<inherits name="com.google.common.base.Base" />

如果要使用与集合相关的类,则需要包含 Collect GWT 模块:

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

PS:使用 GUAVA GWT 17.0 测试

于 2014-10-30T15:25:04.927 回答
2

Hilbrand 的回答不太奏效(加载 Google 集合类时它给了我一堆错误),我找到了另一个解决方案。

  1. 查看谷歌收藏 - http://google-collections.googlecode.com/svn/trunk/
  2. 运行蚂蚁目标“jargwt”
  3. 将构建的 jar 文件“google-collect-gwt-snapshot.jar”添加到应用程序的类路径中。
  4. 添加 GWT 应用程序的模块。

Hilbrand 的解决方案不起作用的原因是因为 Google 集合包含很多 gwt 不兼容的 java 文件,而 Collect.gwt.xml 模块文件选择了 Google 集合下的所有 java 文件。

于 2010-03-09T05:19:11.240 回答
0

我有同样的问题,下面的步骤解决了我的问题。

我在构建路径中找到了“guava-15.0.jar”,然后我又添加了一个“guava-gwt-15.0.jar”文件来构建路径

于 2017-10-27T21:29:26.290 回答