获取参数list的泛型类型
时间: 2023-06-10 20:06:54 浏览: 150
获取参数 list 的泛型类型可以使用 Java 的反射机制。假设我们有一个 List 对象,我们可以通过以下代码获取它的泛型类型:
```java
List<String> list = new ArrayList<String>();
Type type = list.getClass().getGenericSuperclass();
if (type instanceof ParameterizedType) {
ParameterizedType parameterizedType = (ParameterizedType) type;
Type[] types = parameterizedType.getActualTypeArguments();
if (types != null && types.length > 0) {
Class<?> clazz = (Class<?>) types[0];
System.out.println(clazz.getName());
}
}
```
上述代码中,我们首先获取 List 对象的 Class 对象,然后调用 getGenericSuperclass() 方法获取它的泛型类型 Type 对象。如果 Type 对象是 ParameterizedType 的实例,说明这是一个带泛型的 List,我们可以通过 getActualTypeArguments() 方法获取它的泛型参数类型 Type 数组。最后我们可以通过强制转换为 Class 对象来获取泛型类型的 Class 对象。
阅读全文