javaBean之内省

内省

JavaBean是一个特殊的java,jdk提供的对javabean的操作的API就是内省.javabean的操作无外乎对属性的getset,而这其实就是调用JavaBean的对应的setget方法的过程,因此把javaBean当做普通类来处理势必很麻烦,因为我们很难准确的定义各属性所对应的setget方法名,显然内省提供了解决此问题的方法

PropertyDescriptor描述 Java Bean 通过一对存储器方法导出的一个属性.它的三个构造方法

String propertyName,PropertyDescriptor(Class<?> beanClass,String writeMethodName)

String propertyName,Method writeMethod)

显然在我们不能很容易的确定一个JavaBean的属性的时候,我们更应该使用第一个构造方法String propertyName,Class<?> beanClass)

我们只要传递操作的JavaBean类的Class对象和属性的名字这两个变量就可以了,而不必考虑这个属性的getset方法是什么样的.

当获得PropertyDescriptor的对象的时候我们可以调用对象的getReadMethdgetWriteMethod来获取JavaBean属性的一对存储器方法对象,getset方法对象.接着就可以用反射的方法来调用这些方法.

BeanUtilsapache提供的操作JavaBean的工具包,包含了多种对JavaBean操作的方法.:

BeanUtils.setProperty(Object obj,String PropertyName,String PropertyValue)设置JavaBean的属性值;

BeanUtils.getProperty(Object obj,String PropertyName)获取JavaBean的属性值;

BeanUtils.copyProperties(Object dest,Object orig)拷贝属性

BeanUtils.describe(Object bean)将指定的bean转换为Map类型

BeanUtils.setProperty()PropertyUtils.setProperty()的区别是,BeanUtilsJavaBean属性的值赋值类型是字符串,PropertyUtils则是属性的原本类型

BeanUtils还支持属性的延伸,若BeanUtils操作的JavaBean对象bean的一个属性date是一个类的对象,而这个类也可以当做一个JavaBean类看待,并且有属性x,那么我们可以在用BeanUtils操作bean时延伸到date的x属性,如BeanUtils.getProperty(bean,date.x).

BeanUtils是一个功能强大的工具包,可以在以后的使用中查询BeanUtils的api文档来了解各个方法的详细用法.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值