有关Java反射的注意点

1. 获取Class对象的3种方式

  1. 类的实例对象调用getClass
  2. 类名.class
  3. Class.forName(全类名)
  4. 包装类的TYPE属性,如Integer.TYPE
  5. 子类使用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
voidvoid
Class:			class java.lang.Class

3. get与getDeclared

  • get获取当前类内所有的内容,包括继承父类的内容
  • getDeclared只获取当前类内定义的和重写的
    在这里插入图片描述
Method[] methods = cc.getMethods();
Method[] declaredMethods = cc.getDeclaredMethods();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章