1. 程式人生 > >DynaProperty、DynaBean及DynaClass類的使用

DynaProperty、DynaBean及DynaClass類的使用

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. }