Field类的setAccessible()

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章