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();