您的位置:首页 > 职场人生

黑马程序员-java内省学习笔记

2013-01-03 22:00 239 查看
  ------- android培训java培训、期待与您交流! ----------

一、JavaBean概念

JavaBean是一种特殊的java类,主要用于传递数据信息,这种java类中的方法主要用于 访问私有的字段,而且方法名符合某种命名规则

二、JavaBean类产生需求

如果要在两个模块之间传递多个信息,可以将这些信息封装到一个JavaBean中,这种JavaBean的实例对象通常称之为值对象(Value Object 简称VO)。这些信息在类中用私有字段来存储,如果读取或者设置这些字段的值,则需要通过一些相应的方法来确定,大家觉得这些方法的名称叫什么好呢?JavaBean的属性是根据其中的setter和getter方法来确定的,而不是根据其中的成员变量。如果方法名字为setid,中文意思即设置id,至于你把它存到哪个变量上,不用管,如果方法名字为getid 中文意思即获取id至于你从哪个变量上面取也不用管

三、javaBean中属性明明规则

去掉方法名字前面的set或者get剩余部分就是属性名字,如果剩余部分的第二个字母是小写的,则把剩余的部分的首字母改成小写的。

Ø Setid() 属性名 id

Ø isLast()属性名 last

Ø setCPU属性名 CPU

Ø getUPS的属性名 UPS

总之一个类被当做javaBean使用时,javaBean的属性是根据方法名字推断出来的它根本看不到java类内部的成员变量

四、一个符合JavaBean特点的类可以当做普通类一样进行使用,但是它当JavaBean用肯定能够带来一些额外的好处

1) 在Java EE 开发中 经常要使用到JavaBean 很多环境就要要求按照JavaBean的方式惊醒操作,别人都这么用和这么做,所以我们没有选择的余地

2) JDK中提供了对JavaBean进行操作的一些API,这套API就成为内城,如果要自己去通过getX的方法访问私有的x,有一定的难度 用内生这套api操作javaBean 比用普通类方式更方便。

五、JavaBean内省操作主要是对一些工具的使用 下面举一些简单的例子



图中第十七行:通过调用 getFoo 和 setFoo 存取方法,为符合标准 Java 约定的属性 构造一个 PropertyDescriptor。

图中第十八行:通过PropertyDescriptor 得到绑定的属性在这个类上面的get方法

图中第十九航:通过调用get方法 取得属性的值

(2) 采用遍历BeanInfo所有属性的方式来查找和设置某个PefectPoint对象X属性

在程序中把一个类当做JavaBean看,就是调用IntroSpector.getBeanInfo方法,得到的BeanInfo对象封装了把这个类当做JavaBean看的结果信息(可以设想一下配置文件里面的信息形式)



(3)两个工具类的简单实用 BeanUtil与PropertyUtils



图中四十四是一行显示:BeanUtils可以对对象的属性进行级联操作

图中四十与四十三行比较显示:propertyUtil以属性本身的类型进程操作BeanUtils是以字符串进行操作的

(4)JavaBean与Map集合可以相互转换

BeanUtil中有个方法为:Static java.util.Map describe(java.lang.Object bean)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: