日期:2014-05-20  浏览次数:20702 次

Java 反射 遍历
通过Java的反射机制,获得到一个type为 java.util.List的field,如何对获得的list进行遍历?

例子如下:

Person bean:
Java code

class Person{
  private String name;
  private List parents;

...get(),set() 
}


main:
Java code

public static void main(String[] args){
  Person a = new person();
  Class<?> progClass = bean1.getClass();
  try {
    Field field = progClass.getDeclaredField("parents");
    field.setAccessible("true");
  } catch (Exception e){
    e.printStackTrace();
  }
}



现在想对通过field获得的parents的list进行遍历,要怎么实现?

------解决方案--------------------
没看懂你bean1是个啥。。。

Field field = progClass.getDeclaredField("parents");
field.setAccessible("true");
List lst = (List) field.get(a); // 这就取到该字段所引用对象了
if (lst != null) {
for (Object obj : lst) {
System.out.println(obj);
}
}