Java 反射获取到泛型对象的变量值
时间: 2023-09-02 21:06:27 浏览: 172
java基于反射得到对象属性值的方法
5星 · 资源好评率100%
在 Java 中,如果您想要获取泛型对象的变量值,可以使用反射机制来实现。具体步骤如下:
1. 获取泛型对象的 Class 对象
```
Class<?> clazz = yourGenericObject.getClass();
```
2. 获取泛型对象的 Field 对象
```
Field field = clazz.getDeclaredField("fieldName");
```
其中,"fieldName" 是您需要获取的变量名。
3. 设置 Field 对象的访问权限
```
field.setAccessible(true);
```
4. 获取变量值
```
Object value = field.get(yourGenericObject);
```
其中,yourGenericObject 是您的泛型对象。
完整示例代码如下:
```java
public class GenericObject<T> {
private T value;
public T getValue() {
return value;
}
public void setValue(T value) {
this.value = value;
}
public static void main(String[] args) throws Exception {
GenericObject<String> obj = new GenericObject<>();
obj.setValue("Hello, world!");
Class<?> clazz = obj.getClass();
Field field = clazz.getDeclaredField("value");
field.setAccessible(true);
Object value = field.get(obj);
System.out.println(value); // Output: Hello, world!
}
}
```
这里的泛型对象是一个 GenericObject<String> 对象,您可以根据实际情况进行相应的调整。
阅读全文