有關(guān)動(dòng)態(tài)bean的一些用法,涉及到的類(lèi)如下:
1、DynaBean是一個(gè)接口,它的實(shí)現類(lèi)有BasicDynaBean、LazyDynaBean、ResultSetIterator、WrapDyna­Bean
2、DynaClass,也是接口,它的實(shí)現類(lèi)有BasicDynaClass、WrapDynaClass等
3、DynaProperty,用來(lái)設置動(dòng)態(tài)bean的屬性
4、PropertyUtils,工具類(lèi),主要用來(lái)設置、取得屬性值
等等,可以查閱commons-beanutils.jar
這里列舉一個(gè)例子,講述它的用法,代碼如下:
①動(dòng)態(tài)設置了三個(gè)屬性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"))
};
②創(chuàng )建一個(gè)dynaClass,通過(guò)dynaClass來(lái)創(chuàng )建DynaBean的實(shí)例
DynaClass dynaClass = new BasicDynaClass("bean", null, property);
DynaBean bean = dynaClass.newInstance();
③通過(guò)PropertyUtils來(lái)設置屬性值
PropertyUtils.setProperty(bean, "id", "001");
PropertyUtils.setProperty(bean, "name", "iplan");
PropertyUtils.setProperty(bean, "email", "l...@love.com");
④通過(guò)以上的設置,這個(gè)bean就可以像平時(shí)的javabean一樣來(lái)使用了
當然,不是xxx.getId(),而是bean.get("id");的用法
說(shuō)明:在①處,除了設置一般的類(lèi)型外,也可以設置其它類(lèi)型(如java.util.List等),還可以是一般的javabean。
在②處,在構造函數中的"bean",是描述它的一個(gè)標記
在③處,可以不采用PropertyUtils來(lái)設置屬性值,而是直接通過(guò)如下方式
bean.set("id", "001");
bean.set("name", "iplan");
bean.set("email", "l...@love.com");
總結一下:要使用BasicDynaBean,就首先要構造一個(gè)BasicDynaClass來(lái)包含期望的數據結構。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。