内省(Introspector) — JavaBean
什么是JavaBean和属性的读写方法?
访问JavaBean属性的两种方式:Sun Java SE 提供的API
直接调用bean的setXXX或getXXX方法。
通过内省技术访问(java.beans包提供了内省的API),内省技术访问也提供了两种方式。
通过PropertyDescriptor类操作Bean的属性
通过Introspector类获得Bean对象的 BeanInfo,然后通过 BeanInfo 来获取属性的描述器( PropertyDescriptor ),通过这个属性描述器就可以获取某个属性对应的 getter/setter 方法,然后通过反射机制来调用这些方法。
下面是Apache提供的操作JavaBean的更方便的API
Apache组织开发了一套用于操作JavaBean的API,这套API考虑到了很多实际开发中的应用场景,因此在实际开发中很多程序员使用这套API操作JavaBean,以简化程序代码的编写。
Beanutils工具包的常用类:
BeanUtils
PropertyUtils
ConvertUtils.regsiter(Converter convert, Class clazz)
自定义转换器
在MyEclipse中,如果要用BeanUtils ,需要导入apache网上下的bin目录下的commons-beanutils-1.8.3.jar包。和apache的log4j日志里的 commons-logging.jar 与 log4j.jar ,如果不导log4j的这两个jar包,会抛出
java.lang.NoClassDefFoundError :org/apache/commons/logging/logFactory异常。
因为BeanUtils jar包的运行需要log4j日志包的支持。
除了上面的方法,也可以通过反射自己来获得JavaBean的属性!
总结了几种操作JavaBean的方法:
1。通过setXXX和getXXX方法
2。通过反射。getField ,getDeclaredFiled。。。。
3。通过内省技术 。内省又包括 Sun 的API :1).PropertyDescriptor ,Introspector。 2)Apache 的BeanUtils,ConvertUtils
1368

被折叠的 条评论
为什么被折叠?



