Classe é um tipo bruto. Referências ao tipo genérico Class <T> devem ser parametrizadas

Eu tenho a seguinte classe (de um simples tutorial de Primavera)

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

    }
}

Onde a classe Validator é aorg.springframework.validation.Validator classe da Primavera 2.5.

O método de suporte está mostrando um aviso (Classe é um tipo bruto. Referências ao tipo genérico Classe deve ser parametrizado), se eu tentar adicionar parâmetros a isso, como

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

Estou tendo o erro a seguir:

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

Há muitos tópicos sobre esse tipo de pergunta, mas quero obter uma resposta completa e realmente entendê-la sem "ocultar" o problema com um@SupressWarnings!

questionAnswers(2)

yourAnswerToTheQuestion