我正在使用反射來獲取正在運行的Java應用程序的字段的項目。Java反射問題
我設法得到字段,但我無法讀取或寫入他們。這是一個例子,我在網上找到:
Class aClass = MyObject.class
Field field = aClass.getField("someField");
MyObject objectInstance = new MyObject();
Object value = field.get(objectInstance);
field.set(objetInstance, value);
的問題是,我使用類從運行jar文件,我嘗試操縱類是從類加載器獲得。所以,而不是'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
感謝。
你是什麼意思的'正在運行的jar文件'?它在你的類路徑上嗎? – wjans