java中支持动态的类和属性配置,可以像使用Map那样去使用,而不用创建非常多的类
使用DynaBean类,可以不必创建大量的VO,FORM等传递值的对象。它是通过这个三个类(DynaProperty, DynaBean, DynaClass)来实现此工作的.
如下实例:
- package demo04;
- import java.util.HashMap;
- import java.util.Map;
- import org.apache.commons.beanutils.BasicDynaClass;
- import org.apache.commons.beanutils.DynaBean;
- import org.apache.commons.beanutils.DynaProperty;
- import org.apache.commons.beanutils.PropertyUtils;
- /**
- * BasicDynaBean, DynaProperty, BasicDynaClass的使用
- */
- public class DynaBeanTest {
- public static void main(String[] args) throws Exception {
- //定义动态属性
- DynaProperty[] props = new DynaProperty[]{
- new DynaProperty("username", String.class),
- new DynaProperty("address", java.util.Map.class)
- };
- //动态类
- BasicDynaClass dynaClass = new BasicDynaClass("person", null, props);
- //动态bean
- DynaBean person = dynaClass.newInstance();
- person.set("username", "jhlishero");//设置值
- Map<String, String> maps = new HashMap<String, String>();
- maps.put("key1", "value1");
- maps.put("key2", "value2");
- person.set("address",maps);//设置值
- person.set("address", "key3", "value3");//第二种方法设置map中的值
- System.err.println(person.get("username"));//获取字符串值
- System.err.println(person.get("address", "key1"));//获取map中值
- System.err.println(person.get("address", "key2"));
- System.err.println(person.get("address", "key3"));
- //使用PropertyUtils工具获取属性值
- System.out.println(PropertyUtils.getSimpleProperty(person, "username"));
- }
- }
本文介绍如何使用Apache Commons BeanUtils包中的DynaBean、DynaProperty和BasicDynaClass来创建动态的Java Bean对象,从而避免大量VO、FORM对象的创建,提高开发效率。

1823

被折叠的 条评论
为什么被折叠?



