探索中前进:Commons-BeanUtils用法系列二:LazyDynaBean基本用法

LazyDynaBean动态加载属性类,配合LazyDynaClass一起使用

		//用法1
                               DynaProperty[] props=new DynaProperty[]{
				new DynaProperty("name",String.class),
				new DynaProperty("age",Integer.class),
				new DynaProperty("birth",Date.class)
		};
		LazyDynaClass dynaClass=new LazyDynaClass("user",LazyDynaBean.class,props);
		try {
			LazyDynaBean dynaBean = (LazyDynaBean) dynaClass.newInstance();
			
			SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
			dynaBean.set("name", "章子怡");
			dynaBean.set("age", 16);
			dynaBean.set("birth", sdf.parse("1986-05-01"));
			StringBuilder sb=new StringBuilder();
			sb.append("name:").append(dynaBean.get("name"))
			.append(",age:").append(dynaBean.get("age"))
			.append(",birth:").append(sdf.format(dynaBean.get("birth")));
			System.out.println(sb.toString());
			
			dynaBean.set("email", "yinhe2726@163.com");
			System.out.println(dynaBean.get("email"));
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InstantiationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		//用法2
		DynaBean bean=new LazyDynaBean();
		bean.set("name", "孙晓磊");
		System.out.println(bean.get("name"));
		MutableDynaClass dc=(MutableDynaClass)bean.getDynaClass(); //获取可以动态添加属性的DynaClass类
		
		System.out.println("----开始测试数组属性----");
		dc.add("indexProp", int[].class); //添加整型数组属性
		bean.set("indexProp", 0, 1); //给数组属性添加值
		bean.set("indexProp", 1, 2);
		int[] indexProp=(int[]) bean.get("indexProp");
		System.out.println(indexProp[1]);
		
		System.out.println("----开始测试LIST属性----");
		bean.set("indexProp2", 0, "str1"); //直接添加属性,此时属性的类型是LIST或数组,此处是LIST
		bean.set("indexProp2", 1, "str2");
		List list=(List) bean.get("indexProp2");
		System.out.println(list.get(0));
		
		System.out.println("----开始测试MAP属性----");
		bean.set("mapProp","key1","value1"); //直接添加键值对,默认属性类型是MAP
		Map map=(Map)bean.get("mapProp");
		System.out.println(map.get("key1"));
		
		dc.add("mapProp2", HashMap.class); //或者先设置属性类型,再添加
		bean.set("mapProp2","mapProp2-key1","mapProp2-value1");
		Map map2=(Map)bean.get("mapProp2");
		System.out.println(map2.get("mapProp2-key1"));

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值