获取对象的泛型
时间: 2023-08-24 09:10:30 浏览: 142
Java如何获取泛型类型
获取对象的泛型需要通过 Java 的反射机制来实现。具体步骤如下:
1. 获取对象的 Class 对象,可以通过对象的 getClass() 方法获取。
2. 获取对象的 Type 类型,可以通过 Class 对象的 getGenericSuperclass() 方法获取,该方法返回的是 Type 类型的对象,需要强制转换为 ParameterizedType 类型。
3. 通过 ParameterizedType 类型的 getActualTypeArguments() 方法获取泛型参数的 Type 类型数组,该数组的每个元素都是 Type 类型的对象,可以通过强制转换为 Class 类型来获取泛型参数的 Class 对象。
示例代码如下:
```
public class Example<T> {
private T data;
public Class<?> getType() {
Type type = getClass().getGenericSuperclass();
if (type instanceof ParameterizedType) {
ParameterizedType paramType = (ParameterizedType) type;
Type[] args = paramType.getActualTypeArguments();
if (args.length > 0 && args[0] instanceof Class) {
return (Class<?>) args[0];
}
}
return null;
}
}
// 使用示例
Example<String> example = new Example<>();
Class<?> type = example.getType(); // type == String.class
```
阅读全文