这是一个简单的问题,但我遇到了问题......
我正在尝试Objects.equal()
在 GWT 客户端代码中使用 Google 通用集合的方法,但我不断收到错误消息
20:12:10.001 [错误] [gwt_regex] 第 39 行:没有可用于类型 com.google.common.base.Objects 的源代码;你忘了继承一个必需的模块吗?
试图向谷歌寻求答案,但找不到任何答案——每个人都只是说“谷歌收藏应该与 GWT 一起工作”。
您需要继承模块文件:
<inherits name='com.google.common.Collect.gwt.xml' />
并添加两个集合的源文件和其他 gwt 特定文件。第一个位于项目页面的 zip 文件中,后者位于集合项目主干的 gwt 文件夹中:http ://code.google.com/p/google-collections/source/browse/#svn/trunk/重量
要解决您的错误(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 测试
Hilbrand 的回答不太奏效(加载 Google 集合类时它给了我一堆错误),我找到了另一个解决方案。
Hilbrand 的解决方案不起作用的原因是因为 Google 集合包含很多 gwt 不兼容的 java 文件,而 Collect.gwt.xml 模块文件选择了 Google 集合下的所有 java 文件。
我有同样的问题,下面的步骤解决了我的问题。
我在构建路径中找到了“guava-15.0.jar”,然后我又添加了一个“guava-gwt-15.0.jar”文件来构建路径