java - 如何以反射方式遍历数组字段?

标签 java reflection arrays

我有

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

最佳答案

你会使用这样的东西:

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 辅助类来访问长度和各个元素。

关于java - 如何以反射方式遍历数组字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2941800/

相关文章:

javascript - 转换表索引

java - Couchbase - java 2.1.1 SDK,当我阅读有生存时间的文件时,到期时间总是零

java - 检索表名列表

java - 如何使用aspectj跟踪Java父线程id?

java - 是否可以打开包含类的 .txt/.java 文件,并对其使用反射?

php - 从数组 Php 中删除最后 4 个元素

java - 如何使用 uriSMSURI 从收件箱中获取未读消息?

asp.net - 在 vb.net 中通过反射抛出类型 'E' 的异常

Go lang反射如何识别接口(interface)底层类型

ios - Swift:从两个数组转换为数据集以在图表中使用