有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何反射地迭代数组字段?

我有

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);
          }
        }
      }

共 (1) 个答案

  1. # 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帮助器类访问长度和各个元素