您的位置:首页 > 编程语言 > Java开发

10.内省以及对javabean进行操作

2011-06-13 20:34 197 查看
内省以及对javabean进行操作

1.了解javabean
JavaBean 是一种J***A语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自身机制发现和操作这些JavaBean 属性。
概述
  用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。   JavaBean可分为两种:一种是有用户界面(UI,User Interface)的JavaBean;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。JSP通常访问的是后一种JavaBean。
发展
  最初,JavaBean的目的是为了将可以重复使用的软件代码打包标准。特别是用于帮助厂家开发在综合开发环境(IDE)下使用的java软件部件。这些包括如Grid控件,用户可以将该部件拖放到开发环境中。从此,JavaBean就可以扩展为一个java web 应用的标准部件,并且JavaBean部件框架已经扩展为企业版的 Bean(EJB)
需求
JavaBean是java,属于某些特定的译码指导方针,并且扩展了适应性和范围,允许用户访问内部的属性和方法。通过这些,JavaBean类可以用于下列方法:
1. 在IDE中,JavaBean的功能允许应用开发者浏览其中的方法,即使JavaBean是被编译的,并且无法利用原始的源文件。   
2. 在 Remote Method Invocation(RMI) 的分布式风格中,这项功能听起来并不让人兴奋,但是在未来的包含企业版的JavaBean后,将改变这种情况。   
3. 为了JavaBean的属性值和状态可以保存到磁盘上。   这里说的有些简单,如果想了解更多的东西,可以查阅一些资料

2.对javabean的简单内省操作

建立一个javabean,里面有x属性,通过内省方法获取x的值,并通过内省方式设置x的值



接下来介绍一个Eclipse的小技巧,如果我们想把我们刚才写的代码抽离出来作为一个方法来调用,怎么做呢,看截图:

(1)选中要抽取的代码块



(2)点击右键 refactor重构---ExtractMethod扩展成为方法



3.弹出对话框,给这个方法起个名字



4.然后,我们看效果图



3.对javabean的复杂内省操作
在这之前,张孝祥老师也不知道有这样一种简单的内省操作,张老师使用的是一种复杂的方式,在这里也做一下介绍

需要用到这样一个接口类型





4.使用BeanUtils包对javabean进行操作
BeanUtil包是由阿帕奇公司的开源勇士编写的一个用来操作javabean的包,我们需要下载下来这个包,另外加一个日志包。下载下来后有三个包,把最大的那个包导入到build path当中就可以了。看截图:



然后我们就可以使用这个包的类对javabean进行操作了,首先我们先做,获取javabean中x属性的值:





现在我们在这个javabean中创建了一个Date类型的属性birthday,我们从API可以找到Date类型有一个setTime()方法,所以我们可以把Date这个类当作一个javabean来操作,我们可以这么写:



另外,我们再介绍另外一个类,PropertyUtils,这个类和BeanUtils类相似,有一点区别;



在给r1的属性x设置值的时候所传递的必须和javabean中定义的x的类型保持一致,javabean中的x的类型是Integer.class 所以传递过去的必须是111,但是这个在BeanUtils包,就不需要考虑这么多,不论是传递过去什么,它都会当作String类型传递过去,然后自动的进行类型转换。(但也有误差,偶尔也有可能转换失败)

假设你想自己进行类型转换的话就可以使用PropertyUtils,如果你想让它自己来进行转换,就是用BeanUtils类
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: