Я работаю над проектом, который использует отражение, чтобы получить поля работающего 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
Спасибо.