當前位置:編程學習大全網 - 網站源碼 - java中如何實現private反射獲得對象字段值的

java中如何實現private反射獲得對象字段值的

背景介紹:在壹個Bean類中,需要通過反射機制獲得private字段屬性時,如果用通常獲得步驟獲得會報如下錯誤:java.lang.IllegalAccessException: Class Test can not access a member of class Bean with modifiers "private"at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:57)at java.lang.reflect.Field.doSecurityCheck(Field.java:811)at java.lang.reflect.Field.getFieldAccessor(Field.java:758)at java.lang.reflect.Field.get(Field.java:228)解決如下代碼實現代碼:1.Bean.class內容如下:public class Bean {private String aa;}2.Test.class內容如下:public class Test {public static void main(String[] args) throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException {Bean test = new Bean();Field f = Bean.class.getDeclaredField("aa");//其中,最關鍵的代碼是://f.setAccessible(true);//這行代碼把對象data上的name字段設置為public訪問屬性.f.setAccessible(true);System.out.println(f.get(test));System.out.println(f.get(test));}}運行Test類輸出如下:nullt2

  • 上一篇:如何加密js?
  • 下一篇:php中 用的是thinkphp模板 怎麽樣讓用戶保持在登錄狀態用session
  • copyright 2024編程學習大全網