java - 没有参数的参数化类?

标签 java generics parameterized-types

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

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

但是 GeneralResponseSO 的定义如下:

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

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

或者编译器是否会神奇地过滤掉类中的所有泛型?这样所有使用 T 的变量/方法都会被删除吗?但我并不期望 Java 编译器能够发挥如此神奇的作用。

最佳答案

没有类型参数的泛型类/接口(interface)是原始类型

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

Note: Example.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details.

You can read more here

关于java - 没有参数的参数化类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53943340/

相关文章:

java - 项目展开时自动调整列的大小

system-verilog - 在 systemverilog 中,有没有办法以类型为条件?

java - 使用 Java 参数化类型和多态性实现这种通用编程场景的方法

java - 理解java中的有界泛型。重点是什么?

java - 泛型和原始类型

java - 根据屏幕尺寸翻译动画

java - 在 JTree 中获取一个节点

java - 正确使用java泛型?

扩展时 Java 泛型名称冲突

delphi - 如何为TList <T>编写通用FreeAll