本章任务.
1.使用反射获取类型信息:类名,类全名,父类名等。
2.使用反射创建实例。
3.使用反射访问属性和方法:公共方法/属性,非公共方法/属性等。
4.使用反射实现对HTTP请求数据的封装。
本章目标
1.理解反射的作用
2.使用反射获取类的信息
3.使用反射创建实例
4.使用反射访问属性和方法
获取对应基本类型的方法:
String getName():以字符串的形式返回该类型的名称
String getSimpleName():以字符串的形式返回该类型的简称
Package getPackage(): 获取该类型所在的包。
Class getSuperclass(): 返回该类型的超类(父类)的Class实例
Class[] getInterfaces():返回该类型所实现的全部接口的Class实例
int getModifiers():返回该类型的多有修饰符,由public,protected,private,final,staic,abstract 等对应的int常量组成,返回的整数应使用Modifier工具类来解码,才可以判断修饰符的构成。
反射及反射机制
反射的作用
获取类型的基本信息
获取属性信息
获取方法的基本信息
反射技术的优点
允许程序创建和控制任何类的对象,无需提前硬编码目标类
提高了Java程序的灵活性和扩展性,降低了耦合性,提高自适应能力
反射的应用领域
开源架构,如MyBatis,Spring等
反射技术的缺点
性能问题
反射机制主要应用在对灵活性和扩展性要求很高的系统框架上
代码维护问题
反射会模糊程序内的逻辑,可读性较差,且反射可能会破坏封装