Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用番石榴10';与GWT 2.4.0的谓词和函数接口_Java_Gwt_Guava - Fatal编程技术网

Java 使用番石榴10';与GWT 2.4.0的谓词和函数接口

Java 使用番石榴10';与GWT 2.4.0的谓词和函数接口,java,gwt,guava,Java,Gwt,Guava,GWT 2.4.0和Guava GWT 10.0.1是否支持谓词s和函数s?两个接口都标记为@GwtCompatible 在调试托管模式下运行项目时,我在使用谓词时收到运行时验证错误: [错误][MyProject]-第XXY行:导入javax.annotation.Nullable 无法解决 [错误][MyProject]-第YYY行:无法将Nullable解析为类型 从其他StackOverflow帖子来看,我认为这些错误不应该要求在Guava版本09的路径中包含JSR305(在路径中包含J

GWT 2.4.0和Guava GWT 10.0.1是否支持
谓词
s和
函数
s?两个接口都标记为
@GwtCompatible

在调试托管模式下运行项目时,我在使用
谓词时收到运行时验证错误:

[错误][MyProject]-第XXY行:导入javax.annotation.Nullable 无法解决

[错误][MyProject]-第YYY行:无法将Nullable解析为类型

从其他StackOverflow帖子来看,我认为这些错误不应该要求在Guava版本09的路径中包含JSR305(在路径中包含JSR305并没有解决问题)

我似乎还收到了几个接口不匹配错误:

[错误][MyProject]-第XXX行:新类型 函数(){}必须实现继承的抽象 方法函数。应用(对象)

[错误][MyProject]-第YYY行:新类型的方法apply(MyType) 函数(){}必须重写或实现超类型 方法

,以及使用
谓词时出现的类似错误,我将其作为错误提交:

我的设置有什么问题吗

My Project.gwt.xml文件包含以下行:

<inherits name="com.google.common.collect.Collect" />
<inherits name="com.google.common.base.Base" />
我正在使用Eclipse3.7.1和JavaSE-1.6,这是一种需要在WEB-INF/lib中包含jsr305.jar的类型 就是这样

另一件需要注意的事情是,番石榴的一部分被捆绑在side GWT*.jar中,但它们被放在单独的包com.google.GWT.thirdparty.guava.common中。。。。。 正如eclipse经常发生的那样,在解析导入时,它会抓住错误的导入,这会在运行时造成混乱,因为com.google.gwt.thirdparty.guava中打包的类来自另一个版本,不能被引用

我的建议:

在所有*.java文件中搜索“第三方”子字符串,并用正确的导入替换它-这对我很有用。


更深一点的解释是,在先前版本的Guava jsr305中包含在Guava jar中,但这次发布的版本中,他们将其删除,并且对它的依赖确实出现在库的Maven pom中,但在网站上没有很好的记录。这在用户中造成了很多混乱

我也遇到了同样的问题,并找到了解决办法。问题在于JSR305源代码不是GWT模块的一部分,因此被GWT忽略。要修复它,请执行以下操作:

  • 将GWT模块描述符添加到jsr305-2.0.0.jar。在jar内部,至少应包含子文件夹
    javax/annotation
    中的java源代码,添加一个包含以下内容的文件
    annotation.gwt.xml

就这样!现在,您的eclipse项目将成功编译,开发/托管模式也将正常工作。

您的webapp项目中包括了哪个JAR
guava-10.0.1.jar
guava-gwt-10.0.1.jar
?@Strelok:两者都在war/WEB-INF/lib中,项目的构建路径(作为非外部jar)函数和谓词用于转换和筛选。检查那些进口。我有一个方法不匹配的问题,因为转换来自某个不可靠的地方,而不是来自google.common。
import com.google.common.base.Function;
import com.google.common.base.Predicate;
<?xml version="1.0" encoding="UTF-8"?>
<module>
    <source path="" />
</module>
<inherits name='javax.annotation.Annotation'/>