У меня есть следующий класс (из простого учебника Spring)
public class CarValidator implements Validator {
public boolean supports(Class aClass) {
return Car.class.equals(aClass);
}
public void validate(Object obj, Errors errors) {
Car car = (Car) obj;
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "model", "field.required", "Required field");
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "price", "field.required", "Required field");
if( ! errors.hasFieldErrors("price")) {
if (car.getPrice().intValue() == 0) {
errors.rejectValue("price", "not_zero", "Can't be free!");
}
}
}
}
Если класс Validator является классом org.springframework.validation.Validator
из Spring 2.5.
Метод поддержки показывает предупреждение (класс является сырым типом. Ссылки на общий тип Class должны быть параметризованы), если я пытаюсь добавить к нему такие параметры, как
public boolean supports(Class<?> aClass) ...
Я получаю следующую ошибку:
The method supports(Class<?>) of type CarValidator has the same erasure as supports(Class) of type Validator but does not override it
Есть много потоков по этому типу вопросов, но я хочу получить полный ответ и фактически понять его, не "скрывая" проблему с помощью @SupressWarnings
!