反射
1 什么是反射?
所谓反射,就是通过字节码文件(.class)去获取对应的类的各个 字段,构造函数,以及方法.反射的逻辑在框架中用的比较多.特别是Spring框架.
2 java中反射的一些API的用法
2.1通过反射获取构造方法
//获取所有的构造方法的数组(private修饰的无法获取)
public Constructor[] getConstructors()
//获取一个构造方法(private修饰的无法获取)
public Constructor getConstructor(Class<?>... parameterTypes)
//获取所有的构造方法(包括私有的)
public Constructor[] getDeclaredConstructors()
//获取一个构造方法(可以获取私有)
public Constructor getDeclaredConstructor()
2.2通过反射获取成员变量
//获取某一个成员变量(public修饰的)
public Field getField(String name)
//获取多个成员变量(public修饰的)
public Field[] getFields()
//获取所有的成员变量(包括私有的)
public Field[] getDeclaredFields()
//获取一个成员变量(可以获取私有的)
public Field getDeclaredField(String name)
2.3通过反射获取成员方法
//获取某一个成员方法(public修饰的)
public Method getMethod(String name,Class ... parmars)
//获取多个成员方法(public修饰的)
public Method[] getMethods()
//获取一个成员方法(可以获取私有的)
public Method getDeclaredMethod(String name,Class ... parmars)
//获取所有的成员方法(包括私有的)
public Method[] getDeclaredtMethods()
2.4通过反射创建对象
//用newInstance()创建对象,前提是拿到对应类的构造方法
class1.getConstructor().newInstance()

浙公网安备 33010602011771号