小编Nat*_*ell的帖子

Java反思问题

我正在开发一个使用反射来获取正在运行的java应用程序的字段的项目.

我设法得到了字段,但我无法读取或写入它们.这是我在网上找到的一个例子:

Class aClass = MyObject.class
Field field = aClass.getField("someField");
MyObject objectInstance = new MyObject();
Object value = field.get(objectInstance);
field.set(objetInstance, value);
Run Code Online (Sandbox Code Playgroud)

问题是我使用运行的jar文件中的类,我尝试操作的类是从classLoader获得的.因此,我只是拥有'.class'而不是'MyObject.class'.为了获得'MyObject',我尝试使用ClassLoader,但这不起作用.

如果我只使用'.class':

Object value = field.get(theLoadedClass);
Run Code Online (Sandbox Code Playgroud)

我会收到这个错误:

java.lang.IllegalArgumentException: Can not set int field myClass.field to java.lang.Class
Run Code Online (Sandbox Code Playgroud)

谢谢.

java reflection jar illegalargumentexception

8
推荐指数
2
解决办法
1万
查看次数

标签 统计

illegalargumentexception ×1

jar ×1

java ×1

reflection ×1