1 反射到底是什么
官方:
所谓的Java的反射机制,其实指在运行状态中,对于任意一个类,都能够知道这个类的属性和方法;对于任意一个对象,都能调用它的属性和方法;这种动态获取信息以及调用方法的功能就称之为java的反射机制。
大白话:
反射当中包含了”反“,所以你想要知道什么是”反“,你就要先明白什么是”正“
(1)什么是”正“
一般情况下,我们使用某个类的时候,就必须要知道他是什么类,用来做什么。使用的时候直接对这个类进行实例化,之后使用这个类的对象直接进行操作。
Person p = new Person();
p.showInfo();
上面这个例子,就是我们正常使用的时候,对一个类的对象初始化,我们把这个理解为”正“。
(2)什么叫做”反“
一开始并不知道这个类的对象是什么,所以自然没有办法通过”new“来创建一个对象。这个时候我们时候我们还是希望创建这个对象,就必须要使用jdk底层提供的反射的API来进行创建。
Class clazz = Class.forName("包名.类名");
Person p = clazz.newInstance();
第一和第二种方式创建出来的对象完全一样。
所以,什么是反射?
反射就是你运行的时候才知道你要操作的类是什么,并且在类运行的时候才获取到类的完整的构造,并调用对应的方法。
2 Class
2.1 创建Class对象的3种方式(Class)
2.2 最简单的创建对象——调用空构造
2.3 指定构造函数创建对象
2.4 获取或者设置一个属性的值
设置和获取到public的属性