tianhao
10/19/2017, 3:24 AMpublic class GenericCompositeValidator<T> implements Validator {
private Class<T> type;
private Validator[] validators;
public GenericCompositeValidator(Class<T> type, Validator... validators) {
this.type = type;
this.validators = validators;
}
@Override public boolean supports(Class<?> clazz) {
return type.isAssignableFrom(clazz);
}
@Override public void validate(Object target, Errors errors) {
for (Validator v : validators) {
v.validate(target, errors);
}
}
public Validator[] getValidators() {
return validators;
}
}
Kotlin:
class GenericCompositeValidator<T>(private val type: Class<T>, vararg validators: Validator) : Validator {
val validators: Array<Validator>
init {
this.validators = validators as Array<Validator>
}
override fun supports(clazz: Class<*>): Boolean {
return type.isAssignableFrom(clazz)
}
override fun validate(target: Any, errors: Errors) {
for (v in validators) {
v.validate(target, errors)
}
}
}