2017-02-16 87 views
1

我有一个方法来启动我的对象的验证,但并不总是相同的类对象。 我使用的代码块:要验证对象我但不重复我可以将不同的对象传递给同一个方法?

Set<ConstraintViolation<typeClass>> violations = validator.validate(className); 
    for (ConstraintViolation<typeClass> violation : violations) { 
    logger.debug(violation.getMessage()); 
    output = violation.getMessage(); 
} 

,我想在一个方法来使用它,但该的className类型类是可变的,然后,如果我与字符串例如由一种方法:

public Response getValidations(String typeClass, String helloString) { 
    //do the validation of the string 
} 

helloString是对象但String类型这取决于第一个参数我传递给方法的对象的的名称。

+0

嗯..你在寻找一种方式来“举例验证”,并在编译时强制执行,这两个他们有相同的类型? –

+0

@ M.Prokhorov我想用bean验证来验证我的类。每个班级都有他自己的验证,但我想对所有人使用相同的方法。 – Zurquk

+1

“Validator”不会对ValidatorFactory支持的任何类进行验证吗?没有'validator.validate(class)',有'validator.validate(instance,groups ...)',这将完全满足任何object_的有效性。 –

回答

0

最后我找到了答案,它是那么容易,它激怒我了-_-

private String makeVerifications(Object instance, Validator validator) { 
    String output = ""; 

    Set<ConstraintViolation<Object>> violations = validator.validate(instance); 
    for (ConstraintViolation<Object> violation : violations) { 
     logger.debug(violation.getMessage()); 
     output += System.getProperty("line.separator") + violation.getMessage(); 
    } 
    return output; 
} 
+0

'violations.stream()。map(ConstraintViolation :: getMessage).collect(Collectors.joining(System.getProperty(“line.separator”));' –

相关问题