#Java内省(Introspector)java
Java内省技术专门用来操做JavaBean的属性。框架
- 为何要学内省?
- 开发框架时,常常须要使用java对象的属性来封装程序的数据,每次都使用反射技术完成此类操做过于麻烦,因此sun公司开发了一套API,专门用于操做java对象的属性
- 什么是Java对象的属性和属性的读写方法?
- 字段与属性的区别
- 一个类有几个属性取决于读取器和修改器
- 一个类拥有的属性,不要忘记getClass()方法
- 内省访问JavaBean属性的两种方式
- 经过PropertyDescriptor类操做Bean的属性
- 经过Introspector类得到Bean对象的 BeanInfo,而后经过 BeanInfo 来获取属性的描述器( PropertyDescriptor ),经过这个属性描述器就能够获取某个属性对应的 getter/setter 方法,而后经过反射机制来调用这些方法
#BeanUtils框架工具
Sun公司的内省API过于繁琐,因此Apache组织结合不少实际开发中的应用场景开发了一套简单、易用的API操做Bean的属性——BeanUtils对象
- Beanutils工具包的经常使用类:
- BeanUtils
- PropertyUtils
- ConvertUtils.regsiter(Converter convert, Class clazz)
- 自定义转换器
BeanUtils对于8中基本数据类型是直接转换的,可是对于复杂类型就不行了,须要咱们自定义类型转换器才能够。 使用Map填充一个Bean,拷贝一个Bean到另外一个Beanip