我正在使用反射来获取正在运行的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