代码改变世界

Cglib的使用方法(4)--BeanCopier

2011-06-05 02:18  会被淹死的鱼  阅读(4356)  评论(0编辑  收藏  举报

cglib系列文章索引

  1. Cglib的使用方法(1)--Enhancer
  2. Cglib的使用方法(2)--CallbackFilter
  3. Cglib的使用方法(3)--Mixin
  4. Cglib的使用方法(4)--BeanCopier

用来对象之间拷贝属性

import net.sf.cglib.beans.BeanCopier;


public class PropertyCopyDemo {
	public static void main(String[] args) {
		Other other = new Other("test", "1234");
		Myth myth = new Myth();
		
		System.out.println(other);
		System.out.println(myth);
		
		BeanCopier copier = BeanCopier.create(Other.class, Myth.class, false);
		copier.copy(other, myth, null);
		
		System.out.println(other);
		System.out.println(myth);
	}
}

class Other {
	private String username;
	private String password;
	private int age;
	
	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public Other(String username, String password) {
		super();
		this.username = username;
		this.password = password;
	}
	
	@Override
	public String toString() {
		return "Other: " + username + ", " + password + ", " + age;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}
}

class Myth {
	private String username;
	private String password;
	private String remark;
	
	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	@Override
	public String toString() {
		return "Myth: " + username + ", " + password + ", " + remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public String getRemark() {
		return remark;
	}
}

运行结果如下:

Other: test, 1234, 0
Myth: null, null, null
Other: test, 1234, 0
Myth: test, 1234, null