循环获取泛型对象的每一列的变量值
时间: 2023-08-24 09:43:21 浏览: 89
C#将DataTable转化为List<T>
如果您想要循环获取泛型对象的每一列的变量值,可以通过反射获取泛型对象的 Field 数组,然后遍历数组获取每个 Field 对象的值。具体步骤如下:
1. 获取泛型对象的 Class 对象
```
Class<?> clazz = yourGenericObject.getClass();
```
2. 获取泛型对象的所有 Field 对象
```
Field[] fields = clazz.getDeclaredFields();
```
3. 遍历 Field 数组,获取每个 Field 对象的值
```
for (Field field : fields) {
field.setAccessible(true);
Object value = field.get(yourGenericObject);
System.out.println(field.getName() + ": " + value);
}
```
完整示例代码如下:
```java
public class GenericObject<T> {
private T value1;
private String value2;
private int value3;
public T getValue1() {
return value1;
}
public void setValue1(T value1) {
this.value1 = value1;
}
public String getValue2() {
return value2;
}
public void setValue2(String value2) {
this.value2 = value2;
}
public int getValue3() {
return value3;
}
public void setValue3(int value3) {
this.value3 = value3;
}
public static void main(String[] args) throws Exception {
GenericObject<String> obj = new GenericObject<>();
obj.setValue1("Hello");
obj.setValue2("world!");
obj.setValue3(2022);
Class<?> clazz = obj.getClass();
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
Object value = field.get(obj);
System.out.println(field.getName() + ": " + value);
}
}
}
```
这里的泛型对象是一个 GenericObject<String> 对象,包含了三个变量值。您可以根据实际情况进行相应的调整。
阅读全文