sein ich die folgende Klasse haben (von einer einfachen Feder-Tutorial)Klasse ist ein Rohtyp. Verweise auf generische Typklasse <T> sollte parametrisierte
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!");
}
}
}
}
Wenn der Validator-Klasse die org.springframework.validation.Validator
Klasse von Spring 2.5 ist.
Die Träger Methode zeigt eine Warnung (Klasse ein Roh-Typ ist. Verweis auf generische Typ Klasse sollte parametrierbar), wenn ich versuche, so zu diesen Parameter hinzufügen, wie
public boolean supports(Class<?> aClass) ...
Ich erhalte die folgenden Fehler :
The method supports(Class<?>) of type CarValidator has the same erasure as supports(Class) of type Validator but does not override it
es gibt viele Themen über diese Art von Frage, aber ich mag eine vollständige Antwort zu bekommen und zu verstehen, es tatsächlich ohne das Problem mit einem @SupressWarnings
‚versteckt‘!
+1 für Frage, und nette Einstellung zu den Beantwortern – KLE
Sie wissen, wenn Sie eine der Antworten akzeptieren, erhalten Sie einige weitere Punkte ... – KLE
Erledigt. Vielen Dank nochmal. –