Я работаю над проектом, который использует отражение для получения полей работающего java-приложения.
Мне удалось получить поля, но я не могу их читать или писать. Это пример, который я нашел в сети:
Class aClass = MyObject.class
Field field = aClass.getField("someField");
MyObject objectInstance = new MyObject();
Object value = field.get(objectInstance);
field.set(objetInstance, value);
Проблема в том, что я использую классы из работающего jar-файла, а классы, которыми я пытаюсь управлять, получаются из classLoader. Поэтому вместо MyObject.class у меня просто .class. Чтобы получить MyObject, я попытался использовать ClassLoader, но это не сработало.
Если я просто использую .class:
Object value = field.get(theLoadedClass);
, я получу эту ошибку:
java.lang.IllegalArgumentException: Can not set int field myClass.field to java.lang.Class
Спасибо.