在一个我试图理解的Android框架中,我发现这样的一条语句:
public Call<GeneralResponseSO> performApiCall(/*...*/) {
// ...
}
但是GeneralResponseSO
的定义如下:
public class GeneralResponseSO<T> {
// ...
}
api方法是否应指定T
是哪种类型?我似乎无法理解为什么编译器没有给出错误,以及T
是什么类型。
还是编译器会魔术般地从类中过滤掉所有泛型?这样所有使用T
的变量/方法都被删除了吗?我不希望Java编译器执行这种魔术。
答案 0 :(得分:2)
没有类型参数的通用类/接口是Raw type
。
在编译过程中未检查原始类型(您可能会在Intellij等IDE中看到警告),并且可能在运行时导致异常。
注意:Example.java使用未经检查或不安全的操作。注意: 重新编译-Xlint:未检查详细信息。