У меня есть следующий класс (из простого учебника 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.
Метод поддержки показывает предупреждение (класс является необработанным типом. Ссылки на класс универсального типа должны быть параметризованы), если я попытаюсь добавить к нему параметры, такие как
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
!