How do I avoid using instanceof
and casting in this situation if I want to have different validators where the method signatures differ?
Code
for(BatchValidator validator : validators) {
try {
if (validator instanceof BatchErrorValidator) {
((BatchErrorValidator<T>) validator).validate(targets);
} else if (validator instanceof BatchWarningValidator) {
((BatchWarningValidator<T>) validator).validate(targets, header);
}
} catch (BatchValidationException e) {
handleImportExceptions(e, header.getSequenceId());
}
}