java - JVM如何知道没有参数的泛型类型参数?

标签 java generics

我有一个泛型工厂方法。

public static <T> List<T> create(){
    return new ArrayList<T>();
}

但它没有参数。

我没有给出函数的类型参数,但它知道没有任何参数的适当类型。

public static void main(String[] args){
    List<Integer> intlist = create();  //it is an Integer List
    List<String> stringlist = create();  //it is a String List
}

最佳答案

由于类型删除,JVM 不知道泛型类型参数。

Java 编译器能够推断出 T 在您的示例中应该是 IntegerString,因为它可以访问泛型类型有关您声明的变量类型的信息。

关于java - JVM如何知道没有参数的泛型类型参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18647702/

相关文章:

java - 切换二维数组中的最大值和最小值

java - cms实现调查模块

scala - 如何在Scala中多次继承通用特征?

swift - 错误无法调用类型 'Box<T>' 的初始化程序

java - 为什么这个类即使没有正确实现它的接口(interface)也能编译?

c# - 在 XML 代码注释中引用泛型类型

java - 如何从 EC 公钥字节中获取 PublicKey 对象?

java - 使用 JSTL 调用对象方法

java - JButtons 没有出现在我的 JFrame 上

c# typeof 应用于泛型参数父类(super class)型