【问题标题】:How do I iterate over an Array field reflectively?如何反射性地迭代 Array 字段?
【发布时间】:2010-05-31 06:41:38
【问题描述】:

我有

Class<? extends Object> class1 = obj.getClass();
    Field[] fields = class1.getDeclaredFields();
    for (Field aField : fields) {
      aField.setAccessible(true);
       if (aField.getType().isArray()) {
          for (?? vals : aField) {
            System.out.println(vals);
          }
        }
      }

【问题讨论】:

    标签: java reflection arrays


    【解决方案1】:

    你会使用这样的东西:

    if (aField.getType().isArray()) {
      Object array = aField.get(obj);
      int length = Array.getLength(array);
      for (int i = 0; i < length; i++) {
        System.out.println(Array.get(array, i));
      }
    }
    

    换句话说,您首先使用Field.get 从字段中获取值,然后使用java.lang.reflect.Array 辅助类来访问长度和各个元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多