本文轉自:https://www.cnblogs.com/xinhuaxuan/p/6019497.html
一、Class類是什么
Class是一個類,位于java.lang包下,。
在Java中每個類都有一個相對應的Class類的對象,,換句話說:Java程序在啟動運行時 一個XXX.java類經(jīng)過編譯生成XXX.class文件后,就會在JVM虛擬機中產生一個XXX類對應的Class類的對象,,用于表示這個XXX類的類型信息,。
二、Class類常用的方法
Class類是反射中的核心類,它有如下的方法:
獲取類中的屬性:
- getFields(): 獲取類中public類型的屬性
- getField(String name): 獲取類特定的方法,,name參數(shù)指定了屬性的名稱
- getDeclaredFields(): 獲取類中所有的屬性(public,、protected、default,、private),但不包括繼承的屬性,。
- getDeclaredField(String name): 獲取類特定的方法,,name參數(shù)指定了屬性的名稱
獲取類中的構造函數(shù):
- getConstructors():獲取類中的公共方法
- getConstructor(Class[] params): 獲取類的特定構造方法,params參數(shù)指定構造方法的參數(shù)類型
- getDeclaredConstructors(): 獲取類中所有的構造方法(public、protected,、default,、private)
- getDeclaredConstructor(Class[] params): 獲取類的特定構造方法,params參數(shù)指定構造方法的參數(shù)類型
獲取類中的方法:
- getMethods(): 獲得類的public類型的方法
- getMethod(String name, Class[] params): 獲得類的特定方法,name參數(shù)指定方法的名字,params參數(shù)指定方法的參數(shù)類型
- getDeclaredMethods(): 獲取類中所有的方法(public、protected,、default,、private)
- getDeclaredMethod(String name, Class[] params): 獲得類的特定方法,name參數(shù)指定方法的名字,params參數(shù)指定方法的參數(shù)類型
其它重要方法:
- newInstance(): 通過類的不帶參數(shù) 的構造方法創(chuàng)建這個類的一個對象
- forName(String className): 獲取className參數(shù)指定的類的class對象
- forName(String className,boolean initialize,ClassLoader): 使用指定的類加載器獲取className參數(shù)指定的類的class對象
- getClassLoader(): 獲取類加載器
- getName(): 獲取類名
- getPackage(): 獲取類所在的包名
三、獲取Class對象的三種方法
第一種: 調用Class類的靜態(tài)方法forName,比如 Class.forName('java.lang.String')
第二種: 使用類的.class語法,比如 : Class cls = String.class
第三種: 調用對象的getClass方法, 比如:String str = '123'; Class cls = str.getClass();
?。≒S:在java.lang.Object類中定義了getClass()方法,因此對于任意一個Java對象,都可以通過此方法獲得對象的類型)
|