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