La clase es un tipo crudo. Las referencias a la clase de tipo genérico <T> deben estar parametrizadas

Tengo la siguiente clase (de un simple tutorial de 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!");
            }
        }

    }
}

Donde la clase Validador es laorg.springframework.validation.Validator clase de la primavera 2.5.

El método de asistencia muestra una advertencia (la clase es un tipo sin formato. Las referencias a la clase de tipo genérico deben estar parametrizadas), si intento agregar parámetros a este, como

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

Obtuve el siguiente error:

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

Hay muchos hilos sobre este tipo de pregunta, pero quiero obtener una respuesta completa y realmente entenderla sin 'esconder' el problema con una@SupressWarnings!

Respuestas a la pregunta(2)

Su respuesta a la pregunta