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