反射
Java是面向对象的,有对象之前先有类,static来修饰类的属性和方法
在Java中存储了类的内容,这个内容也应该是一个对象
Java中每一个类都有一个内存,这每一个内存都是一个对象
这些对象记录了这些类中声明了哪些 属性 和 方法 以及 构造方法
Java中将这些类抽象为Class类
获取类中的属性
Java中用来记录 类的属性的 类叫做field
fName 变量只想的对象就是Easy类中的name属性
注入该属性的值
getField getFields 只能获取类中的public声明的属性
getDeclaredField 获取类中私有属性
需要先获取访问权限 setAccessible( true ) true 为获取
反射:在程序运行期间,可以动态获取类中定义的属性和方法以及构造方法的机制(思想)的实现
反射的核心是Class类,程序中使用的类,每一个都有一个唯一的对应的Class对象
反射的API:Field、Method、Constructor、
反射会破坏类的封装性,通过场景说明
调用有参和无参的方法
反射获取构造方法 获取无参构造方法
修饰符
使用Modifier的方法判断方法、属性、构造方法的修饰符
内省
底层通过反射来实现的,内省获得属性的读方法和写方法(getter/setter)来获取和设置属性的内容,内省不会破坏封装性
获取BeanInfo