内省

来源:互联网 发布:快速背单词软件 编辑:程序博客网 时间:2024/06/06 20:59

内省?

开发框架时,经常需要使用java对象的属性来封装程序的数据,每次都使用反射技术完成此类操作过于麻烦,所以SUN公司开发了一套API,专门用于操作java对象的属性。


通过内省技术访问(java.beans包提供了内省的API)JavaBean的两种方式。

通过PropertyDescriptor类操作Bean的属性

通过Introspector类获得Bean对象的 BeanInfo,然后通过 BeanInfo 来获取属性的描述器( PropertyDescriptor ),通过这个属性描述器就可以获取某个属性对应的 getter/setter 方法,然后通过反射机制来调用这些方法。



beanutils工具包 

1.什么是beanutils

Apache组织开发了一套用于操作JavaBean的API,这套API考虑到了很多实际开发中的应用场景,因此在实际开发中很多程序员使用这套API操作JavaBean,以简化程序代码的编写。

2.Beanutils工具包的常用类:

BeanUtils
PropertyUtils
ConvertUtils.regsiter(Converter convert, Class clazz)

3.设置属性值、类型的自动转换、类型转换器


4.BeanUtils将Map属性自动放到Bean中

注意:Map的key必须要与Bean的属性一致。
Map m = new HashMap();m.put("name", "张三"); //key名一定要与对象中的变量名一致m.put("age", "18"); //key名一定要与对象中的变量名一致m.put("birthday", "1992-05-12"); //key名一定要与对象中的变量名一致Student stu = new Student();ConvertUtils.register(new DateLocaleConverter(), Date.class);BeanUtils.populate(stu, m); //将Map属性自动放到Bean中System.out.println(stu.getName());



原创粉丝点击