开发手册 欢迎您!
软件开发者资料库

Java BeanUtils - Lazy DynaBeans

Java BeanUtils Lazy DynaBeans - 从简单和简单的步骤学习Java BeanUtils,从基本到高级概念,包括概述,背景,基本,嵌套属性访问,自定义内省,抑制属性,BasicDynaBeans,ResultSetDynaClass,RowSetDynaClass,WrapDynaBean,Lazy DynaBeans,BeanUtils和ConvertUtils,创建自定义转换器,区域设置感知转换,比较Bean,操作集合,查询或过滤集合,转换集合,标准JavaBeans,动态Bean(DynaBeans),数据类型转换,实用程序对象和类,集合。

描述

Lazy DynaBeans是DynaBean的一个实现,它提供了连接DynaClass属性的Lazy List和Lazy Map的特性.有两种类型的Lazy DynaBeans:

  • LazyDynaBean :它指定动态提供的惰性DynaBean修改了名称和数据类型的属性.

  • LazyDynaMap :它通过使用延迟地图或列表轻松实现DynaBean的映射系统.

  • LazyDynaList :它提供了DynaBean,Map或POJOS(指定普通java类的普通旧Java对象)的列表.

  • LazyDynaClass :它实现了MutableDynaClass接口.

以下是Lazy DynaBeans的功能:

  • 懒惰属性添加:调用set方法时,Lazy bean使用它自动向DynaClass添加属性,并且它具有添加或删除DynaClass属性的能力.

  • 延迟列表/数组增长:当进入时,惰性列表或数组将自动增长dexed属性无法容纳正在设置的索引.

  • 惰性列表/数组实例化:索引属性getter和setter方法DynaBean的结果是惰性列表或数组实例化,如果不存在索引属性.如果未定义索引属性,则会自动将其添加到DynaClass并实例化默认的List实现.

  • 延迟地图实例化 :如果不存在映射属性,则DynaBean的映射属性getter和setter方法会导致延迟映射实例化.如果未定义映射属性,则它将自动添加到DynaClass并实例化默认的Map实现.

  • Lazy Bean实例化:如果 DynaClass 属性被定义为DynaBean或常规bean并且在DynaBean中不存在,则LazyDynaBean将使用默认的空构造函数实例化bean.

LazyDynaBean

它是标准延迟bean的实现,它指定了提供动态修改的名称和数据类型属性的惰性DynaBean.它通过与 LazyDynaClass 相关联来实现 MutableDynaClass 接口.下面的简单代码通过使用getter或setter来显示LazyDynaBean的用法:

DynaBean dynaBean = new LazyDynaBean(); dynaBean.set("company","Model");//simple dynaBean.set("customer","fname","Steve");//映射dynaBean.set("customer","lname","Smith");//mapped dynaBean.set("address",0,addressLine1);//索引dynaBean.set("address",1,addressLine2);//索引

LazyDynaMap

它通过使用延迟地图为DynaBean提供轻量级的映射实现或列表系统,它不与DynaClass的属性相关联.它本身实现了DynaClass接口,并从地图内容中获取DynaClass的信息. LazyDynaMap通过实例化它来创建自己的Map,或者可以在现有Map周围生成.

下面的代码显示了新地图的创建:

DynaBean dynaBean = new LazyDynaBean(); DynaBean dynaBean = new LazyDynaMap();//创建DynaBean dynaBean.set("company","Model");//simple dynaBean.set("customer","fname","Steve");//映射dynaBean.set("address",0,addressLine1);//indexed Map demoMap = dynaBean.getMap()//检索地图

下面的代码显示现有地图的使用在DynaBean中:

Map demoMap = ....//exisitng Map DynaBean dynaBean = new LazyDynaMap(demoMap);//在DynaBean中包裹Map dynaBean.set("ford","raptor");//设置属性

LazyDynaList

它提供了DynaBean,Map或POJOS(Plain Old)的列表指定普通java类的Java Object).这个类有两个要点:

  • 它会自动增长并占用DynaBean,java.util.Map的列表或者POJOS来指定惰性列表行为.

  • 它提供了将Collection或Array放入Lazy列表的简便方法,并且可以从Lazy List中轻松地输出.

LazyDynaClass

它实现了 MutableDynaClass 界面并扩展 BasicDynaClass .它可以被LazyDynaBean用作默认的DynaClass,也可以用作其他DynaBean实现.当您使用LazyDynaBean时,DynaClass没有任何内容.

以下代码创建了LazyDynaClass:

  MutableDynaClass dynaClass = new LazyDynaClass();//创建DynaClass  dynaClass.add("price",java.lang.Integer.class);//添加属性 dynaClass.add("orders",OrderBean [] .class);//添加索引属性 dynaClass.add("orders",java.util.TreeMapp.class);//添加映射属性 DynaBean dynaBean = new LazyDynaBean(dynaClass);//使用关联的DynaClass创建DynaBean

以下代码创建LazyDynaBean并获取DynaClass:

  DynaBean dynaBean = new LazyDynaBean();//创建LazyDynaBean  MutableDynaClass dynaClass = (MutableDynaClass)dynaBean.getDynaClass();//得到DynaClass  dynaClass.add("price",java.lang.Integer.class);//添加属性 dynaClass.add("exBeans",myPackage.MyBean [] .class);//添加'array'索引属性 dynaClass.add("exMap",java.util.TreeMapp.class);//添加映射属性