快速业务通道

数据库中数据项变化不定时如何设计Java Beans - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
  "hash(key1)",            "New 0");        value =            propertyUtils.getproperty(bean,                "hash(key1)");        assertNotNull("Returned new value 0", value);        assertTrue("Returned String new value 0",            value instanceof String);        assertEquals("Returned correct new value 0", "New 0",            (String) value);      } catch (Throwable t) {        fail("Threw " + t);      } } /** * 测试嵌套属性 */ public void testNestedValues() { …. } }

动态bean

相对标准Java Bean的编译时静态决定一个Bean的属性,利用扩展javaBean属性机制,能在运行时决定属性的bean为动态bean。动态bean既有标准Java Bean的类型检查机制又有扩展javaBean属性机制的动态特点。下面我们从创建动态Bean和在配置文件中定义动态Bean的属性两方面介绍common-beanutils中动态bean机制。

数据库中数据项变化不定时如何设计Java Beans(7)

时间:2011-01-19 IBM 龚永生

4.1 运行时创建动态bean

动态bean具有动态属性,也就是说可以由程序运行时构造bean的属性,而不是像标准的javaBean在编译时决定一个bean的属性。

定义和访问一个动态bean的步骤如下:

定义一个动态属性Dynaproperty数组,动态属性Dynaproperty定义了一个属性的名字和对象类型;

用定义好的动态属性数组实例化一个动态类;

由动态类返回一个动态bean;

可以用propertyUtils访问和设置动态bean的属性。

下面是定义和访问动态bean的代码

// TestDynaBean.java import org.apache.commons.beanutils.*; import java.util.*; public class TestDynaBean {   public static void main(String[] args) { TestBean bean = new TestBean(); Object value = null; try{     Dynaproperty[] px = {     new Dynaproperty("subordinate", bean.getClass()),     new Dynaproperty("firstName", Class.forName("java.lang.String")),     new Dynaproperty("lastName", Class.forName("java.lang.String")) };    DynaClass dynaClass = new BasicDynaClass("employee",null,      px );     DynaBean employee = dynaClass.newInstance();     propertyUtils.setproperty(employee,"subordinate", bean);     propertyUtils.setproperty(employee,"subordinate.listIndexed[0]","dy bean set");     propertyUtils.setproperty(employee,"firstName", "Fred");     propertyUtils.setproperty(employee,"lastName", "Flintstone");     System.out.println("subordinate.listIndexed[0]:");     System.out.println(propertyUtils.getproperty(employee,"subordinate.listIndexed[0]"));     System.out.println("firstName:" + propertyUtils.getproperty(employee, "firstName"));     System.out.println("lastName:" + propertyUtils.getproperty(employee, "lastName")); }catch (Exception e ){ System.out.println(e.toString()); }   } }

4.2 由文件配置动态bean的动态属性

从配置文件配置动态bean的动态属性好处在于既能固定又能更改动态Bean的属性,这些属

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号