java - 通用类型警告

标签 java generics

我刚刚安装了 jdk1.7.0_07,突然被大量有关通用原始类型的警告淹没。 (我收到了数百个错误,它们混淆了其他可能有意义的警告。)据我所知,不应生成这些错误,而且我没有使用 java-6-openjdk-i386 得到它们。

我创建了以下小示例。 (每个类都在自己的文件中。)

public interface Generic<T> {
    public T get( );
}

public class Test {

    public Test safeAsHell( Generic thing, int number ) {
        return new Test( );
    }

    public void safeAsHell( Generic thing ) { }

}

当我尝试编译这个(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

添加Object作为泛型类型参数( Generic<Object> thing )解决了这个问题。我本以为类型 GenericGeneric<Object>是等价的。我是否忽略了什么?

最佳答案

Generic<Object>是参数化类型,而 Generic是原始类型。这就是警告的原因。

关于java - 通用类型警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12684335/

相关文章:

c# - C# 中用户定义的编译时类型约束

java - 直接在手机上运行 "aapt.exe"?

c# - 为什么向我的实体模型类添加无参数构造函数在这里起作用?有什么影响?

c# - 从 Func 创建表达式

java - 如何获取泛型类型的 Class<?> 对象

继承中的 Java 泛型

java - H2OGeneralizedLinearEstimator() - 预测误差

允许在迭代时添加和删除的 Java 集合

java - 是否有任何基于 "Description Logic"或基于 FOL 的推理引擎 Java 库可用?

java - 如何从默认包中静态导入一个类?