IllegalAccessException:反射访问私有变量报错

反射访问私有变量报错

报错

问题原因:使用类反射机制访问类中私有变量

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)忽略访问权限修饰符的安全检查, 这样我们就可以跳过访问限制正常访问到私有变量.

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值