個人理解反射原理

1、通過反射可以獲取到該類的所有的公共字段:

      getField(String name)       getField()

      可以使用setField()方法給字段賦值

2、通過反射可以獲取到類中的所有的構造函數,通過獲取到的構造函數可以對類進行加載

      過程:① 獲取到類     ② 調用類的newsInstance()方法實例化

    (1)無參數構造函數

              Class c = Class.forName("String");

              String s = (String) c.newInstance();

    (2)有參數構造函數

              Class c = Class.forName("String");

              Constructor con = c.getConstructor(Class[] ... 變長數組);

              Class[] classes = new Class[]{String class...};

              String s = (String) con.newInstance(); 

      批量加載類的方法:

              public Object[] createClass(String[] strClassName);

3、通過反射獲取到類的所有方法,並且可以通過invoke()方法調用該類的底層方法

      Method m = getMethod(String name,Class[] ... 可變數組);//獲取想調用的方法

      getMethods();//獲取類中的所有方法

      利用反射獲取方法:

              m.invoke();

     

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