java 获取泛型中存的数据
时间: 2023-08-16 08:03:40 浏览: 104
要获取泛型中存储的数据,可以通过反射来实现。以下是一个示例代码:
```java
public class GenericClass<T> {
private T data;
public GenericClass(T data) {
this.data = data;
}
public T getData() {
return data;
}
public static void main(String[] args) {
GenericClass<Integer> genericClass = new GenericClass<>(100);
Class<?> clazz = genericClass.getClass();
Type type = clazz.getGenericSuperclass();
if (type instanceof ParameterizedType) {
ParameterizedType parameterizedType = (ParameterizedType) type;
Type[] types = parameterizedType.getActualTypeArguments();
for (Type t : types) {
System.out.println(t.getTypeName());
}
}
}
}
```
在这个示例中,我们使用了一个泛型类 `GenericClass`,它包含一个泛型类型 `T` 的字段 `data`。在 `main` 方法中,我们创建了一个 `GenericClass<Integer>` 的实例,并使用反射获取了它的实际类型参数。最后,我们通过循环打印出了实际类型参数的类型名,即 `java.lang.Integer`。
阅读全文