Gwt 如何使用客户端验证程序验证方法调用的返回值在EditorDriver上设置ConstraintViolations

Gwt 如何使用客户端验证程序验证方法调用的返回值在EditorDriver上设置ConstraintViolations,gwt,gwt-editors,gwt-validation,Gwt,Gwt Editors,Gwt Validation,使用GWT 2.5.0, 我想使用客户端验证和编辑器。我在尝试将ConstraintViolation java.util.Set传递给EditorDriver时遇到以下错误,如下所示 Validator a=Validation.buildDefaultValidatorFactory().getValidator(); 设置b=a。验证(人); editorDriver.setConstraintViolations(b); 方法setConstraintViolations(Iterab

使用GWT 2.5.0, 我想使用客户端验证和编辑器。我在尝试将ConstraintViolation java.util.Set传递给EditorDriver时遇到以下错误,如下所示

Validator a=Validation.buildDefaultValidatorFactory().getValidator();
设置b=a。验证(人);
editorDriver.setConstraintViolations(b);

方法setConstraintViolations(Iterable这是我反复做的:

    List<ConstraintViolation<?>> adaptedViolations = new ArrayList<ConstraintViolation<?>>();
    for (ConstraintViolation<Person> violation : violations) {
        adaptedViolations.add(violation);
    }
    editorDriver.setConstraintViolations(adaptedViolations);
List>();
for(约束冲突:冲突){
adaptedViolations.add(违例);
}
editorDriver.setConstraintViolations(修改的冲突);

驱动程序定义了通配符泛型类型,您无法传入类型化约束冲突。

如注释中所述,以下强制转换被确定为有效的解决方法

设置测试=违规;

editorDriver.setConstraintViolations((SetCan你不能直接强制转换它吗?这难道不能使它正常工作,而不是复制列表吗?可能..更短,更有可能更有效,但是对于生成的javascript,编译器可能正在优化它;如果你要求,编译器将删除强制转换,请参阅-XdisableCastChecking at它不能对创建arra执行相同的操作y、 复制内容等。我发现唯一有效的cast是:Set test=违规;editorDriver.setConstraintViolations((Set@asenec4这应该可以解决你的问题。它一点也不优雅,但很管用;哈哈,我打破了堆叠礼节。为了清晰起见,我认为提供答案作为答案是值得的。我感谢@koma的帮助。