java.lang.Class


java.lang.Class

一、Class類是什么
  Class是一個類,位於java.lang包下。
  在Java中每個類都有一個相對應的Class類的對象,換句話說:Java程序在啟動運行時 一個XXX.java類經過編譯生成XXX.class文件后,就會在JVM虛擬機中產生一個XXX類對應的Class類的對象,用於表示這個XXX類的類型信息。

二、Class類常用的方法
  Class類是反射中的核心類,它有如下的方法:
    獲取類中的屬性:
      - getFields(): 獲取類中public類型的屬性
      - getField(String name): 獲取類特定的方法,name參數指定了屬性的名稱
      - getDeclaredFields(): 獲取類中所有的屬性(public、protected、default、private),但不包括繼承的屬性。
      - getDeclaredField(String name): 獲取類特定的方法,name參數指定了屬性的名稱

    獲取類中的構造函數:
      - getConstructors():獲取類中的公共方法
      - getConstructor(Class[] params): 獲取類的特定構造方法,params參數指定構造方法的參數類型
      - getDeclaredConstructors(): 獲取類中所有的構造方法(public、protected、default、private)
      - getDeclaredConstructor(Class[] params): 獲取類的特定構造方法,params參數指定構造方法的參數類型

    獲取類中的方法:
      - getMethods(): 獲得類的public類型的方法
      - getMethod(String name, Class[] params): 獲得類的特定方法,name參數指定方法的名字,params參數指定方法的參數類型
      - getDeclaredMethods(): 獲取類中所有的方法(public、protected、default、private)
      - getDeclaredMethod(String name, Class[] params): 獲得類的特定方法,name參數指定方法的名字,params參數指定方法的參數類型

    其它重要方法:
      - newInstance(): 通過類的不帶參數 的構造方法創建這個類的一個對象
      - forName(String className): 獲取className參數指定的類的class對象
      - forName(String className,boolean initialize,ClassLoader): 使用指定的類加載器獲取className參數指定的類的class對象
      - getClassLoader(): 獲取類加載器
      - getName(): 獲取類名
      - getPackage(): 獲取類所在的包名

三、獲取Class對象的三種方法
  第一種: 調用Class類的靜態方法forName,比如 Class.forName("java.lang.String")
  第二種: 使用類的.class語法,比如 : Class cls = String.class
  第三種: 調用對象的getClass方法, 比如:String str = "123"; Class cls = str.getClass();
  (PS:在java.lang.Object類中定義了getClass()方法,因此對於任意一個Java對象,都可以通過此方法獲得對象的類型)

 

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM