IllegalArgumentException при установке поля класса Java с помощью отражения - PullRequest
0 голосов
/ 21 февраля 2019

каждый:

Я работаю над использованием отражения java для установки значения поля, но получаю IllegalArgumentException

Я нахожу учебник оракула, https://docs.oracle.com/javase/tutorial/reflect/member/fieldTrouble.html, который очень похожв моем случае.

Но даже если я буду следовать примеру для использования,

f.set(ft, new Integer(43));

Все равно не получится с тем же исключением.

Обновление проблемного кода:

import java.lang.reflect.Field;

public class FieldTrouble {
  public Integer val;

  public static void main(String... args) {
    FieldTrouble ft = new FieldTrouble();
    try {
      Class<?> c = ft.getClass();
      Field f = c.getDeclaredField("val");
      f.setInt(ft, new Integer(43));               // IllegalArgumentException

      // production code should handle these exceptions more gracefully
    } catch (NoSuchFieldException x) {
      x.printStackTrace();
    } catch (IllegalAccessException x) {
      x.printStackTrace();
    }
  }
}

Я использую Java 1.8 Кто-нибудь знает, как решить эту проблему?Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...