什么是反射
我们平时在创建对象的时候,一般都是通过直接new来获取,可以理解为这是正向的。反射我们可以理解为是反向的获取实例对象,他可以获取一个类的属性、构造器、方法、以及实现的接口等。
Class类
了解反射之前,我们最好先了解一个类:Class。这是一个什么样的类呢,有什么特殊的地方?我们平时自己编写的类,会定义一些属性、方法什么的,那系统存不存在一个类用来描述我们自己编写的类呢?我们自己写的类通过这个Class,就相当于自己照镜子一样,有哪些属性、那些方法、构造器等都会以Class的某种属性存在,Class就当是这样的一个类。任何一个类系统都会创建唯一的一个且仅有一个Class实例,一般我们获取某个实例的Class实例有三种方式,示例如下(假设我们有个Fruit类):
//方法一:通过类名直接获取
Class fruit = Fruit.class;
//方法二:先创建实例,通过实例的getClass方法获取
Fruit fruit1 = new Fruit();
Class fruitClass = fruit1.getClass