有关动态bean的一些用法,涉及到的类如下:
等等,可以查阅commons-beanutils.jar
- 1、DynaBean是一个接口,它的实现类有BasicDynaBean、LazyDynaBean、ResultSetIterator、WrapDyna­Bean
- 2、DynaClass,也是接口,它的实现类有BasicDynaClass、WrapDynaClass等
- 3、DynaProperty,用来设置动态bean的属性
- 4、PropertyUtils,工具类,主要用来设置、取得属性值
等等,可以查阅commons-beanutils.jar
要使用BasicDynaBean,就要先构造一个BasicDynaClass来包含期望的数据结构。
- 这里列举一个例子,讲述它的用法,代码如下:
- ①动态设置了三个属性id、name、email
- DynaProperty[] property = {
- new DynaProperty("id", Class.forName("java.lang.String")),
- new DynaProperty("name", Class.forName("java.lang.String")),
- new DynaProperty("email", Class.forName("java.lang.String"))
- };
- ②创建一个dynaClass,通过dynaClass来创建DynaBean的实例
- DynaClass dynaClass = new BasicDynaClass("bean", null, property);
- DynaBean bean = dynaClass.newInstance();
- ③通过PropertyUtils来设置属性值
- PropertyUtils.setProperty(bean, "id", "001");
- PropertyUtils.setProperty(bean, "name", "iplan");
- PropertyUtils.setProperty(bean, "email", "l...@love.com");
- ④通过以上的设置,这个bean就可以像平时的javabean一样来使用了
- 当然,不是xxx.getId(),而是bean.get("id");的用法
- 说明:在①处,除了设置一般的类型外,也可以设置其它类型(如java.util.List等),还可以是一般的javabean。
- 在②处,在构造函数中的"bean",是描述它的一个标记
- 在③处,可以不采用PropertyUtils来设置属性值,而是直接通过如下方式
- bean.set("id", "001");
- bean.set("name", "iplan");
- bean.set("email", "l...@love.com");