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

我在使用java反射api时遇到了这个异常,java,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

我在使用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)
代码:

fieldlist[]=TestValue.class.getDeclaredFields();
字符串结果=”;
试一试{
对于(int i=0;i”+结果);
}
}捕获(安全异常e1){
//TODO自动生成的捕捉块
e1.printStackTrace();
}捕获(异常e1){
//TODO自动生成的捕捉块
e1.printStackTrace();
}

只是猜测,但。。。该字段用于与正在传递的对象不同的类型

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

相反,您可以编写以下内容来查找该类的字段


只是猜测,但是。。。该字段用于与正在传递的对象不同的类型

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

相反,您可以编写以下内容来查找该类的字段


您正在使用IllegalArgument,请提供更多的代码是什么导致引发异常的代码?请发布您的代码好吗?以及你试图通过反射使用的类。这看起来像是您将错误类的实例传递给了一个方法。您使用的是IllegalArgument,请提供更多的代码导致引发异常的代码是什么?请发布您的代码好吗?以及你试图通过反射使用的类。这看起来像是将错误类的实例传递给了方法。+1-这与javadoc一致。OP-阅读javadoc+1-这与javadoc一致。OP-阅读javadoc!
    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();
    }
Field fieldlist[] = this.getClass().getDeclaredFields();