反射

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()
posted @ 2021-06-23 16:54  aPumaAtLarge  阅读(48)  评论(0)    收藏  举报