【发布时间】:2018-02-12 22:55:37
【问题描述】:
如果我想在方法签名不同的情况下使用不同的验证器,如何避免在这种情况下使用 instanceof 和强制转换?
代码
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());
}
}
【问题讨论】:
-
你可以让它们使用相同的方法签名。
-
什么是
BatchValidator?这是接口吗?它是否提供validate()方法的必需签名?
标签: java oop instanceof