在GWT中使用Google Common Collection

7

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

我正在尝试在GWT客户端代码中使用Google common collection的Objects.equal()方法,但我一直收到错误信息:

20:12:10.001 [ERROR] [gwt_regex] 第39行:无法获取类型com.google.common.base.Objects的源代码;您是否忘记继承所需的模块?

我试图在Google上搜索答案,但找不到任何关于此的答案 - 每个人都说“Google collection应该可以与GWT无缝配合使用”。

4个回答

6

谢谢,我一回家就试试。 - Jeeyoung Kim

3
为了解决您的错误(No source code is available for type 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


继承“Base”已经过时 - 它已经被“Collect”隐式引用。 - slartidan

2
Hilbrand的答案并没有完全奏效(当加载Google集合类时,它给我带来了一堆错误),我找到了另一个解决方案。
以下是步骤:
1.访问Google Collection - http://google-collections.googlecode.com/svn/trunk/ 2.运行ant目标“jargwt”。
3.将构建的jar文件“google-collect-gwt-snapshot.jar”添加到应用程序的类路径中。
4.在GWT应用程序的模块中添加Collect.gwt.xml。
Hilbrand的解决方案之所以不起作用,是因为Google Collection包含很多不兼容GWT的Java文件,并且Collect.gwt.xml模块文件选择了Google Collection下的所有Java文件。

0
我曾经遇到过同样的问题,以下步骤解决了我的问题。
我在构建路径中找到了“guava-15.0.jar”,然后再添加了一个“guava-gwt-15.0.jar”文件到构建路径中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接