从任何对象访问数据

时间:2015-08-28 13:10:15

标签: java list iteration

我有一个带有4个键的Object1(pojo类) 另一个Object2有7个键现在我想读取List in循环中的每个值以及List<Object2>

是否有可用于此类迭代的实用程序

提前致谢....

1 个答案:

答案 0 :(得分:2)

您需要使用reflection

import java.lang.reflect.*;

class MyObject {
  String x = "hello";
  int y = 42;
  String z = "world";
}

public class Test {
  public static void main(String[] args) throws Exception {
    MyObject obj = new MyObject();
    for (Field f : obj.getClass().getDeclaredFields()) {
      System.out.println(f.getName() + ": " + f.get(obj));
    }
  }
}

打印:

x: hello
y: 42
z: world

现在,这可行,但反射通常比访问字段要慢很多。因此,除非您需要将代码设置为通用代码并处理任意对象,否则您最好手动访问字段。