反射机制
通过某种行为机制,实现对自身行为的描述和检测;
具体而言反射的功能有:
-
得到一个对象所属的类:
- java.long.Class对象,也叫字节码文件对象, 获取Class对象的方法:
- object类的getClass()方法:Class class = 对象名.getClass();
- 类的静态属性:Class class = 类名.class;
- Class类的静态方法:Class class = Class.forName(“类名”);
- java.long.Class对象,也叫字节码文件对象, 获取Class对象的方法:
-
获取一个类所有的成员面变量和方法:
-
获取字段:
- File对象:属于Java.base模块下的Java.lang.reflect包;
- 通过Class获取;
-
获取方法
- 获取构造方法
- Constructor对象:构造器对象,属于Java.base模块下的Java.lang.reflect包
- Constructor对象常用方法:newInstance(Object…initargs)可以指定参数创建对象;
- 通过Class对象获取构造器对象:
- Constructor<?>[] getConstructors() :返回所有共有构造方法;
- Constructor getConstructor(Class<?>… parameterTypes)返回一个共有构造方法
- getDeclaredAnnotation(Class annotationClass) 返回私有构造方法
- 其他方法参考java.long.Class类;
- 获取普通方法
- Method对象:方法对象,属于Java.base模块下的Java.lang.reflect包
- Method对象的常用方法:invoke(Object object,Object…args),在指定对象上调用此方法;参数为args
- 通过Class对象获取:
- Method[] getDeclaredMethods() ;
- Method getMethod(String name, Class<?>… parameterTypes)
- Method[] getMethods()
- 详情参考Java.long.Class类;
- 通过Class对象获取:
- 获取构造方法
-
-
在运行时创建对象:
-
在运行时调用对象的方法: