没有参数的参数化类?

时间:2018-12-27 10:17:03

标签: java generics parameterized-types

在一个我试图理解的Android框架中,我发现这样的一条语句:

public Call<GeneralResponseSO> performApiCall(/*...*/) {
    // ...
}

但是GeneralResponseSO的定义如下:

public class GeneralResponseSO<T> {
    // ...
}

api方法是否应指定T是哪种类型?我似乎无法理解为什么编译器没有给出错误,以及T是什么类型。

还是编译器会魔术般地从类中过滤掉所有泛型?这样所有使用T的变量/方法都被删除了吗?我不希望Java编译器执行这种魔术。

1 个答案:

答案 0 :(得分:2)

没有类型参数的通用类/接口是Raw type

在编译过程中未检查原始类型(您可能会在Intellij等IDE中看到警告),并且可能在运行时导致异常。

  

注意:Example.java使用未经检查或不安全的操作。注意:   重新编译-Xlint:未检查详细信息。

You can read more here