1.反射机制
反射来自物理定义
JAVA不是动态语言,但JAVA具有一个突出的动态语言机制:反射
反射的反射机制是指程序运行时动态自检的能力:
- 能够获得任意一个类的全部信息,包含其属性和方法
- 能够任意访问一个对象的属性和方法
反射能让你执行一些正常情况下无法实现的操作:
- 访问私有属性和私有方法
- 不通过new关键字,而通过类名来实例化对象
2.JAVA反射API
JAVA反射API在:java.lang.reflect包下,常用有四个:
- Class:表示反射的核心类
- Method:表示类的方法
- Filed:表示类的属性
- Constructor:表示类的构造方法
3.获取calss对象
4.获取calss对象 一系列信息,如:
1.获取类名
2.获取类的修饰符
3.获取父类
5.通过反射来创建对象
1.创建对象方式一:newInstance():适用于无参构造
2.创建对象方式二:getConstructor():适用于所有公共的构造
3.创建对象方式三(类的构造方法私有时) 暴力获取构造getDeclaredConstructor():适用于所有构造
6.用Field访问属性
1.从class对象中获取类的属性
2.访问对象中的该属性
7.用Method调用方法
1.从class对象中获取类的方法
2.调用对象中的该方法
8.获取有参、私有的方法
1、获取有参的方法
2.获取私有的方法