Java 类是原始类型。泛型类型类的引用<;T>;应该参数化

Java 类是原始类型。泛型类型类的引用<;T>;应该参数化,java,generics,warnings,suppress-warnings,type-erasure,Java,Generics,Warnings,Suppress Warnings,Type Erasure,我有以下课程(来自一个简单的Spring教程) 其中,验证器类是Spring2.5中的org.springframework.validation.Validator类 supports方法显示警告(类是原始类型。对泛型类型类的引用应该参数化),如果我尝试向其中添加参数,例如 public boolean supports(Class<?> aClass) ... 公共布尔支持(类aClass)。。。 我得到以下错误: 方法支持类型CarValidator的(类)与支持类型Val

我有以下课程(来自一个简单的Spring教程)

其中,验证器类是Spring2.5中的
org.springframework.validation.Validator

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

public boolean supports(Class<?> aClass) ...
公共布尔支持(类aClass)。。。
我得到以下错误:

方法支持类型CarValidator的(类)与支持类型Validator的(类)具有相同的擦除,但不覆盖它


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

由于接口强制您使用原始类型(即不允许您指定正确的类型信息),因此除非您使用
@superswarnings
,否则无法在没有警告的情况下实现它


唯一真正的修复方法是修复接口(即使其定义
布尔支持(类aClass)
)。

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

问题的根源在于Spring接口被声明为兼容Java1.4。
请注意,Spring3.0应该提供符合Java1.5的所有类,这样可以解决您的问题。在升级之前,我想您必须接受警告或
@SuppressWarning

非常感谢。我现在只能忍受@SuppressWarning了。我很高兴能帮助你。我喜欢的是,你不仅想让这些东西发挥作用,而且还想理解!如果你需要在法国南部找工作…;-)SpringLDAP仍然坚持使用原始类型,对吗?尽管它的核心部分需要Java 1.5?是的,我现在可以使用@SuppressWarning,但是如果我改为布尔支持(类aClass),我就进入了类型擦除的世界,这太糟糕了!有不同的方法吗?还是我要等待Spring3.0?+1来回答问题,以及对回答者的良好态度。你知道,如果你接受其中一个答案,你会得到更多的分数。。。
public boolean supports(Class<?> aClass) ...