1. 獲取Class對象的3種方式
- 類的實例對象調用getClass
- 類名.class
- Class.forName(全類名)
- 包裝類的TYPE屬性,如Integer.TYPE
- 子類使用getSuperClass()方法獲取父類類型
2. 所有類型的Class對象
// 類
Class<Object> class1 = Object.class;
// 接口
Class<Serializable> class2 = Serializable.class;
// 一維數組
Class<int[]> class3 = int[].class;
// 二維數組
Class<int[][]> class4 = int[][].class;
// 註解
Class<Override> class5 = Override.class;
// 基本數據類型
Class<Integer> class6 = int.class;
// void
Class<Void> class7 = void.class;
// Class
Class<Class> class8 = Class.class;
結果如下:
類: class java.lang.Object
接口: interface java.io.Serializable
一維數組: class [I
二維數組: class [[I
註解: interface java.lang.Override
基本數據類型: int
void: void
Class: class java.lang.Class
3. get與getDeclared
- get獲取當前類內所有的內容,包括繼承父類的內容
- getDeclared只獲取當前類內定義的和重寫的
Method[] methods = cc.getMethods();
Method[] declaredMethods = cc.getDeclaredMethods();