Как я выполняю итерации по полю Array отражающим образом?

Я имею

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);
          }
        }
      }
6
задан unj2 31 May 2010 в 07:05
поделиться

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 вспомогательный класс для доступа к длине и отдельным элементам.

7
ответ дан 17 December 2019 в 00:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: