在GWT中使用Google Common Collection

Jee*_*Kim 7 java gwt guava

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

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

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

尝试谷歌的答案,但没有找到任何答案 - 每个人都只是说"谷歌收集应该与GWT一起开箱即用".

Hil*_*amp 6

您需要继承模块文件:

<inherits name='com.google.common.Collect.gwt.xml' />
Run Code Online (Sandbox Code Playgroud)

并添加两个集合和其他gwt特定文件的源文件.第一个是项目页面的zip文件,后者可以在集合项目主干的gwt文件夹中找到:http://code.google.com/p/google-collections/source/browse/#svn/trunk/ GWT


Jee*_*Kim 2

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

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

Hilbrand 的解决方案不起作用的原因是 Google Collection 包含大量与 gwt 不兼容的 java 文件,并且 Collect.gwt.xml 模块文件选择 Google Collection 下的所有 java 文件。