java获得集合的泛型类型_Java集合之泛型类和泛型接口
时间: 2023-07-08 09:04:21 浏览: 342
Java中可以通过反射机制获取集合的泛型类型。具体步骤如下:
1. 获取集合的Class对象。
例如,对于一个List<String>类型的集合,可以通过以下代码获取其Class对象:
```
List<String> list = new ArrayList<>();
Class<?> clazz = list.getClass();
```
2. 获取集合的Type类型。
通过调用Class对象的getGenericSuperclass()方法或getGenericInterfaces()方法,可以获取集合的Type类型,进而获取集合的泛型类型。
例如,对于一个List<String>类型的集合,可以通过以下代码获取其泛型类型:
```
Type type = clazz.getGenericSuperclass();
ParameterizedType pType = (ParameterizedType) type;
Type[] types = pType.getActualTypeArguments();
Class<?> genericClazz = (Class<?>) types[0];
```
其中,getGenericSuperclass()方法返回的是Type类型的对象,需要进行强制类型转换为ParameterizedType类型,然后调用getActualTypeArguments()方法获取集合的泛型类型数组,最后获取第一个元素的Class对象即为集合的泛型类型。
对于Set、Map等其他类型的集合也可以采用类似的方法获取其泛型类型。
阅读全文