Field类的setAccessible()

之前一直以为setAccessible()的取值是由成员变量的访问权限决定的,结果经过测试发现,不管成员变量的访问权限是public、protected、默认、还是private,isAccessible()方法都返回false,但是访问private修饰的成员变量时,需要setAccessible(true),否则抛出IllegalAccessException,而其他访问权限修饰的成员变量可以直接访问。所以 结论为:当isAccessible()的结果是false时,如果该字段是private修饰的不允许通过反射访问该字段 ,必须要改成true才可以访问 所以  setAccessible(true) 的作用就是让我们在反射时访问私有变量

发布了30 篇原创文章 · 获赞 13 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/wjr1949/article/details/105329906