类是原始类型。对泛型类型Class的引用 应该参数化

【字号: 日期:2024-02-19浏览:56作者:雯心
如何解决类是原始类型。对泛型类型Class的引用 应该参数化?

接口使用原始类型声明该方法。在这种情况下,没有警告就无法很好地覆盖它。

问题的根源是Spring接口被声明为符合Java 1.4。请注意,Spring 3.0应该提供与Java1.5兼容的所有类,因此可以解决您的问题。升级之前,我想您必须忍受警告或@SuppressWarning。

解决方法

我有以下课程(来自简单的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','Required field');if( ! errors.hasFieldErrors('price')) { if (car.getPrice().intValue() == 0) {errors.rejectValue('price','not_zero','Can’t be free!'); }} }}

其中Validator类是org.springframework.validation.ValidatorSpring 2.5中的类。

如果我尝试向其中添加参数,则supports方法显示警告(Class是原始类型。对泛型类型Class的引用应进行参数化)

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

我收到以下错误:

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

关于这种类型的问题有很多线索,但是我想获得一个完整的答案并真正理解它,而不会用“隐藏”这个问题@SupressWarnings!

相关文章: