java反射原理及Class應用

反射:框架設計靈魂安全

  框架:半成品軟件,能夠在框架基礎上進行軟件開發,簡化編碼框架

  反射:將類的各個組成部分封裝我其餘對象,這就是反射機制編碼

   好處:spa

     1.能夠在程序運行過程當中,操做這些對象設計

     2.能夠解耦,提升程序的可擴展性code

       獲取Class對象的方式:對象

       1.Class.forName(「全類名」);將字節碼文件加載進內存,返回Class對象 (多用於配置文件將類名定義在配置文件中,讀取文件加載類)內存

       2.類名.Class;經過類名的屬性.class獲取(多用於參數傳遞) 開發

       3.對象.getClass();getClass()方法在Object類中定義着( 多用於對象的獲取字節碼的一個方式)get

     結論:

       同一個字節碼文件(*.class)在程序巡行的過程當中,只會被加載一次,不論經過那一種方式獲取Class對象都是同一個。

      Class對象的功能:

     獲取功能:

         1.獲取成員變量們:

             Field[]getFields()  :獲取全部public修飾的成員變量

       Field getField(String name) : 獲取指定名稱的 public修飾的成員變量

          FieId[ ] getDeclaredFieIds()獲取全部成員變量,不考慮修飾符

          FileId getDeclaredFieId(String name);

       2.獲取構造方法們:

            Constructor<?>[ ] getConstructors()

            Constructor<T> getConstructor(類<?>… parameterTypes)

         Constructor<T> getDeclaredConstructor(類<?>… parameterTypes)

            Constructor<?>[ ] getDeclaredConstructors();

       3.獲取成員方法們

             Method[ ] getMethod()

          Method getMethod(String name,類<?>… parameterType)

             Method[ ] getDeclaredMethod()

           Method getDeclaredMethod(String name,類<?>… parameterType)

        4.獲取類名

        String getNmae();

         Field:成員變量

          操做:

           1.設置值

           void set(Object obj,Object value);

           2.獲取值

           get(Object obj)

           3.忽略訪問權限修飾符的安全檢查

           setAccessible(true):暴力反射

            Constructor:構造方法

           建立對象:        

           newInstance(Object… initargs)

   若是使用空參數構造方法建立對象,操做能夠簡化Class對象的newInstance方法

相關文章
相關標籤/搜索