有一个list 怎么获取这个list的泛型类型
时间: 2023-10-16 13:06:32 浏览: 92
可以使用Java的反射机制来获取List的泛型类型。具体代码如下:
```java
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
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("List的泛型类型为:" + clazz.getName());
}
}
}
}
```
这段代码中,我们先创建了一个 `List<String>` 的实例,然后通过 `getClass()` 方法获取到 List 对象的 Class 类型,再通过 `getGenericSuperclass()` 方法获取到 List 类的父类 `Type`,即 `java.util.List<String>`,最后使用 `getActualTypeArguments()` 方法获取到实际的泛型类型参数,即 `String`。
阅读全文