1.所需要的jar包:beanutil.jar和logging.jar,下载地址
2.复制到的CopyEntity
public class CopyEntity {
private String name;
private String remark;
//setter、getter省略
}
3.复制的Entity
public class Entity {
private int num;
private String name;
private String remark;
public Entity() {
}
public Entity(int num, String name, String remark) {
super();
this.num = num;
this.name = name;
this.remark = remark;
}
//setter、getter省略
}
编写测试:
public class Test {
public static void main(String[] args) throws Throwable, Exception {
DynaBean bean=new LazyDynaBean();
bean.set("test", 322);
System.err.println(bean.get("test"));
//这里使用LazyDynaMap,它是LazyBean的一个轻量级实现
LazyDynaMap dynaBean1 = new LazyDynaMap();
dynaBean1.set("foo", "bar"); // simple
dynaBean1.set("customer", "title", "Mr"); // mapped
dynaBean1.set("address", 0, "address1"); // indexed
System.out.println(dynaBean1.get("address",0));
Map myMap = dynaBean1.getMap(); // retrieve the Map
System.out.println(myMap.toString());
/** 复制bean,拷贝一下相同的属性名字以及对应的setter、getter方法,前面数据为复制目的地,后面为复制源 */
Entity entity=new Entity(999, "apple", "iphone");
CopyEntity copyEntity=new CopyEntity();
BeanUtils.copyProperties(copyEntity, entity);
System.out.println(copyEntity.toString());
}
}
LazyDynaBean
它实现一个动态的Bean,可以直接往里面加入属性,作为一个JavaBean一样使用,也可以用上面的BeanUtils或get/set方法进行操作,而不用事先定义一个标准的JavaBean类。
而复制的属性名称一样的就会复制过去。