内省


内省?

开发框架时,经常需要使用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());



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值