java 泛型类反射
时间: 2023-11-10 22:02:35 浏览: 112
在Java中,可以使用反射来获取泛型类的信息。下面是一个示例代码,演示如何使用反射获取泛型类的类型参数:
```java
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
public class GenericClass<T> {
public static void main(String[] args) {
GenericClass<String> genericObject = new GenericClass<>();
// 获取泛型类的类型参数
Type type = genericObject.getClass().getGenericSuperclass();
if (type instanceof ParameterizedType) {
ParameterizedType parameterizedType = (ParameterizedType) type;
Type[] typeArguments = parameterizedType.getActualTypeArguments();
if (typeArguments.length > 0) {
Class<?> typeArgument = (Class<?>) typeArguments[0]; System.out.println("类型参数: " + typeArgument.getName());
}
}
}
}
```
输出结果为:
```
类型参数: java.lang.String
```
这段代码中,我们创建了一个泛型类 `GenericClass`,并使用 `String` 类型实例化了该泛型类的对象。然后通过 `getClass().getGenericSuperclass()` 方法获取泛型类的父类信息,再通过 `getActualTypeArguments()` 方法获取泛型类的类型参数。
阅读全文