DynaProperty、DynaBean及DynaClass类的使用

来源:互联网 发布:vb.net serialport1 编辑:程序博客网 时间:2024/05/20 01:09

java中支持动态的类和属性配置,可以像使用Map那样去使用,而不用创建非常多的类


使用DynaBean类,可以不必创建大量的VO,FORM等传递值的对象。它是通过这个三个类(DynaProperty, DynaBean, DynaClass)来实现此工作的.

如下实例:

Java代码  收藏代码
  1. package demo04;  
  2.   
  3. import java.util.HashMap;  
  4. import java.util.Map;  
  5.   
  6. import org.apache.commons.beanutils.BasicDynaClass;  
  7. import org.apache.commons.beanutils.DynaBean;  
  8. import org.apache.commons.beanutils.DynaProperty;  
  9. import org.apache.commons.beanutils.PropertyUtils;  
  10. /** 
  11.  * BasicDynaBean, DynaProperty, BasicDynaClass的使用 
  12.  */  
  13. public class DynaBeanTest {  
  14.     public static void main(String[] args) throws Exception {  
  15.         //定义动态属性  
  16.         DynaProperty[] props = new DynaProperty[]{  
  17.                 new DynaProperty("username", String.class),  
  18.                 new DynaProperty("address", java.util.Map.class)  
  19.         };  
  20.         //动态类  
  21.         BasicDynaClass dynaClass = new BasicDynaClass("person"null, props);  
  22.         //动态bean  
  23.         DynaBean person = dynaClass.newInstance();  
  24.         person.set("username""jhlishero");//设置值  
  25.         Map<String, String> maps = new HashMap<String, String>();  
  26.         maps.put("key1""value1");  
  27.         maps.put("key2""value2");  
  28.         person.set("address",maps);//设置值  
  29.         person.set("address""key3""value3");//第二种方法设置map中的值  
  30.           
  31.         System.err.println(person.get("username"));//获取字符串值  
  32.         System.err.println(person.get("address""key1"));//获取map中值  
  33.         System.err.println(person.get("address""key2"));  
  34.         System.err.println(person.get("address""key3"));  
  35.         //使用PropertyUtils工具获取属性值  
  36.         System.out.println(PropertyUtils.getSimpleProperty(person, "username"));  
  37.     }  
  38. }  
 

原创粉丝点击