报错
问题原因:使用类反射机制访问类中私有变量
Exception in thread "main" java.lang.IllegalAccessException: Class ironman.spiderman.demoreflect.DemoReflectMethod can not access a member of class ironman.spiderman.demoreflect.Person with modifiers "private"
at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:102)
at java.lang.reflect.AccessibleObject.slowCheckMemberAccess(AccessibleObject.java:296)
at java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:288)
at java.lang.reflect.Field.get(Field.java:390)
at ironman.spiderman.demoreflect.DemoReflectMethod.main(DemoReflectMethod.java:42)
问题解决思路
根据报错可知这是一个IllegalAccessException非法访问的异常,换句话来说就是没有访问该私有变量的权限, 那我们把获得Class对象设置一下调用setAccessible(true)忽略访问权限修饰符的安全检查, 这样我们就可以跳过访问限制正常访问到私有变量.