Java 泛型警告
我刚刚安装了jdk1.7.0_07,我突然收到了大量关于泛型原始类型的警告。(我收到了数百个错误,它们混淆了其他可能有意义的警告。)据我所知,这些错误不应该生成,我不是用java-6-openjdk-i386得到的 我创建了以下小示例。(每个类都在自己的文件中。)Java 泛型警告,java,generics,Java,Generics,我刚刚安装了jdk1.7.0_07,我突然收到了大量关于泛型原始类型的警告。(我收到了数百个错误,它们混淆了其他可能有意义的警告。)据我所知,这些错误不应该生成,我不是用java-6-openjdk-i386得到的 我创建了以下小示例。(每个类都在自己的文件中。) 公共接口通用{ 公众不能得到(); } 公开课考试{ 公共测试安全单元(通用事物,整数){ 返回新测试(); } 公共无效安全壳(通用事物){} } 当我尝试编译这个(javac-Xlint)时,我得到以下警告: Test.java
公共接口通用{
公众不能得到();
}
公开课考试{
公共测试安全单元(通用事物,整数){
返回新测试();
}
公共无效安全壳(通用事物){}
}
当我尝试编译这个(javac-Xlint)时,我得到以下警告:
Test.java:3: warning: [rawtypes] found raw type: Generic
public Test safeAsHell( Generic thing, int number ) {
^
missing type arguments for generic class Generic<T>
where T is a type-variable:
T extends Object declared in interface Generic
Test.java:7: warning: [rawtypes] found raw type: Generic
public void safeAsHell( Generic thing ) { }
^
missing type arguments for generic class Generic<T>
where T is a type-variable:
T extends Object declared in interface Generic
2 warnings
Test.java:3:警告:[rawtypes]找到原始类型:Generic
公共测试安全单元(通用事物,整数){
^
缺少泛型类泛型的类型参数
其中T是一个类型变量:
T扩展在通用接口中声明的对象
Test.java:7:警告:[rawtypes]找到原始类型:Generic
公共无效安全壳(通用事物){}
^
缺少泛型类泛型的类型参数
其中T是一个类型变量:
T扩展在通用接口中声明的对象
2警告
添加
对象
作为泛型类型参数(泛型对象
)解决了这个问题。我本以为Generic
和Generic
类型是等价的。我是否忽略了什么?Generic
是参数化类型,而Generic
是原始类型。这就是警告的原因。我刚刚检查了Naftalin和Wadler提供的Java
Generics的副本,但我不能找出他们没有添加类型参数的任何情况,这样你可能是对的。但是我不明白为什么我以前没有收到这些错误(我总是使用-Xlint
编译)。看起来我有很多清理工作要做。@MarcvanDongen:可能是带有javac标志的开放jdk。但是我不确定,我从未使用过开放jdk。我不认为您删除了一些未经检查的禁止警告注释。如果没有-Xlint
标志,我就不会得到警告。添加该标志只会强制javac
被删除对它认为不安全的东西非常迂腐。
Test.java:3: warning: [rawtypes] found raw type: Generic
public Test safeAsHell( Generic thing, int number ) {
^
missing type arguments for generic class Generic<T>
where T is a type-variable:
T extends Object declared in interface Generic
Test.java:7: warning: [rawtypes] found raw type: Generic
public void safeAsHell( Generic thing ) { }
^
missing type arguments for generic class Generic<T>
where T is a type-variable:
T extends Object declared in interface Generic
2 warnings