Java 内省、JavaBean、BeanUtils

内省

 

     内省(IntroSpector)自我检查,主要对 JavaBean 进行操作。 内省是 Java 语言对 Bean 类属性、事件的一种处理方法(也就是说给定一个javabean对象,我们就可以得到/调用它的所有的get/set方法)。

 

JavaBean

 

     (1)JavaBean 是一个特殊的 Java 类,它的方法名要符合一定的规则命名。例如 get()、set() 方法。一个 JavaBean 类可以当做普通的类来使用,但是一个普通的类并不一定可以当作 JavaBean 来操作。因为它不一定符合 JavaBean 的规则。

 

       (2)为什么使用 JavaBean?在 JavaEE 的开发中,经常要使用到 JavaBean。很多环境就要求按 JavaBean 方式进行操作。再一个就是用 jdk 提供的 API 来把类当作 JavaBean 操作起来非常方便。

       (3)JavaBean 是一种特殊的 Java 类。主要用于传递数据信息,这种 Java 类中的方法要用于访问私有的字段,且方法名符合某种命名规则。如果在两个模块之间传递多个信息,可以将这些信息缝扎un个到一个 JavaBean 中,这种 JavaBean 的实例对象通常称之为值对象(Value Object ,简称 VO)。这些信息在类中有私有字段来存储,如果读取或设置这些字段的值,则需要通过一些相应的方法来访问。

 

       (4)jdk 中提供了对 JavaBean 进行操作的一些 API ,这套 API 就称为内省。用内省这套 API 来操作 JavaBean 比用普通类的方式更方便。

 

         编程实例:用内省来操作 JavaBean ,先读取 JavaBean 的值,再设置 JavaBean 的属性值。

 

          

 

         另一种方式:按照 BeanInfo 获取类

 

        

 

BeanUtils 工具包

 

      由于对 JavaBean 的设置和读取非常广泛,apach 提供了专门对 JavaBean 进行操作的工具类。

 

        BeanUtils方便之一:BeanUtiles 类对属性进行设置和获取的时候都是以 String 类型进行操作的。

        BeanUtils方便之二:BeanUtiles 支持属性的级联操作。当 BeanUtiles 操作一个属性时,而这个属性又是一个对象,BeanUtiles 可以对下一级的对象进行设置。

        BeanUtils方便之三:BeanUtiles 可以将 JavaBean 的属性封装为 Map 集合,通过 BeanUtils.describe(Object bean) 静态方法。还可以将 Map 集合填充至 JavaBean 里面去,通过 BeanUtils.populate(Object bean, Map properties) 方法。

 

        编程实例:通过 BeanUtils 对属性进行设置和获取

 

       

 

        同时,Beanutils 可以将 Map 作为一个 JavaBean 对象来操作,来设置一个 Map 的值

 

       

 

 

补充:

 

      Introspector 类:提供工具获得某个目标 Java Bean 支持的特性、事件和方法的一个标准方式。

 

        BeanInfo 接口:希望提供有关其 bean 的显式信息的 bean 实现者可以提供某个 BeanInfo 类,该类实现此 BeanInfo 接口并提供有关其 bean 的方法、属性、事件等显式信息。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值