Preventing instanceof and casting in Java
本问题已经有最佳答案,请猛点这里访问。
如果我想在方法签名不同的地方使用不同的验证器,如何避免在这种情况下使用
代码
1 2 3 4 5 6 7 8 9 10 11 | 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()); } } |
为什么不让
这样,调用循环只向每个验证器传递相同的参数,而不需要