java - 当我使用 java 反射 api 时出现此异常

标签 java

当我使用java反射api时遇到这个异常

java.lang.IllegalArgumentException
 at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:37)
 at sun.reflect.UnsafeObjectFieldAccessorImpl.get(UnsafeObjectFieldAccessorImpl.java:18)
 at java.lang.reflect.Field.get(Field.java:357)

代码:

    Field fieldlist[] = TestValue.class.getDeclaredFields();
    String result="";
    try {
        for (int i = 0; i < fieldlist.length; i++) {
            Field fld = fieldlist[i];
            result += "name = " + fld.getName() + "\n";
            fld.setAccessible(true);
            result += "value = " + fld.get(this)+ "\n";
            System.out.println("Result----->"+result);
        }
    } catch (SecurityException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    } catch (Exception e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

最佳答案

只是猜测,但是......该字段的类型与您传递的对象不同。

编辑:您正在获取 TestClass 的字段并使用它们来查找当前对象。

相反,您可以编写以下代码来查找类的字段this

Field fieldlist[] = this.getClass().getDeclaredFields();

关于java - 当我使用 java 反射 api 时出现此异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4386221/

相关文章:

java - 关于在不兼容类型上调用 `equals' 的 Maven 插件警告

c# - 使用 java 和 WP7 进行 AES 加密

java - 循环内的扫描仪 - 为什么输入不正确时它不退出循环?

java - 为什么我不能在 eclipse.ini 中将 -Xmx 设置为 1024m?

java - OCR专用近似字符串匹配库

java - wsimport 生成带有 cookie 的客户端

java - Maven Jaxb 插件无法从目标文件夹生成类

java - 从 JavaFX : Can not set javafx. scene.control.Label 字段 application.SceneController.myLabel 开始到 javafx.scene.text.Text

java - 线程 "main"java.lang.NoClassDefFoundError : org/slf4j/LoggerFactory 中的 Gradle 异常

Java构造函数详细介绍