Java反射获取List的泛型
时间: 2023-10-18 20:02:14 浏览: 201
Java使用反射来获取泛型信息示例
要获取一个List的泛型类型,可以使用Java反射提供的Type接口的getActualTypeArguments()方法。
假设我们有一个List对象,其类型为List<String>,可以使用以下代码获取其泛型类型:
```
List<String> list = new ArrayList<String>();
Type type = list.getClass().getGenericSuperclass();
if (type instanceof ParameterizedType) {
Type[] actualTypeArguments = ((ParameterizedType) type).getActualTypeArguments();
Type actualType = actualTypeArguments[0];
System.out.println(actualType);
}
```
这段代码首先获取List对象的Class类型,然后调用getGenericSuperclass()方法获取其父类的Type类型。如果这个Type是ParameterizedType(即带有泛型参数的类型),则通过getActualTypeArguments()方法获取实际的泛型参数类型数组,这里我们只有一个泛型参数,所以直接获取数组的第一个元素即可。最后打印出来的结果应该是java.lang.String。
阅读全文