Klasa jest rodzajem surowym. Odniesienia do ogólnego typu Klasa <T> powinny być sparametryzowane

Mam następującą klasę (z prostego poradnika wiosennego)

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!");
            }
        }

    }
}

Gdzie jest klasa Validatororg.springframework.validation.Validator klasa od wiosny 2.5.

Metoda support pokazuje ostrzeżenie (klasa jest typem surowym. Odwołania do ogólnego typu Class powinny być sparametryzowane), jeśli próbuję dodać do tego parametry, takie jak

public boolean supports(Class<?> aClass) ...

Otrzymuję następujący błąd:

The method supports(Class<?>) of type CarValidator has the same erasure as supports(Class) of type Validator but does not override it

Istnieje wiele wątków dotyczących tego typu pytań, ale chcę uzyskać kompletną odpowiedź i właściwie ją zrozumieć bez „ukrywania” problemu@SupressWarnings!

questionAnswers(2)

yourAnswerToTheQuestion