运行时的局部变量的通用类型

Bob*_*r02 2 java generics reflection type-erasure

Java中是否有一种方法可以反映泛型类型的局部变量?我知道你应该用一个字段 - 获取泛型类型的java.util.List.任何想法如何解决,例如:

public void foo(List<String> s){
  //reflect s somehow to get String
}
Run Code Online (Sandbox Code Playgroud)

或者甚至更一般:

public void foo<T>(List<T> s){
  //reflect s somehow to get T
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*erg 7

.由于Java的类型擦除,所有泛型都在编译过程中被剥离.

但是,您可以使用instanceOfgetClass在列表中的元素上查看它们是否与特定类型匹配.