Field類的setAccessible()

之前一直以爲setAccessible()的取值是由成員變量的訪問權限決定的,結果經過測試發現,不管成員變量的訪問權限是public、protected、默認、還是private,isAccessible()方法都返回false,但是訪問private修飾的成員變量時,需要setAccessible(true),否則拋出IllegalAccessException,而其他訪問權限修飾的成員變量可以直接訪問。所以 結論爲:當isAccessible()的結果是false時,如果該字段是private修飾的不允許通過反射訪問該字段 ,必須要改成true纔可以訪問 所以  setAccessible(true) 的作用就是讓我們在反射時訪問私有變量

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