当前位置: 首页 > news >正文

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

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

转载于:https://www.cnblogs.com/icejoywoo/archive/2011/06/05/2072975.html

相关文章:

  • 代码意识流——花朵数问题(八)
  • NHibernate 学习第三天 Web.config 的配置
  • 使用BIOS进行键盘输入和磁盘读写03 - 零基础入门学习汇编语言77(完)
  • MFC中的窗口绘图问题
  • 【转载】Linux下进程的建立
  • SQL SERVER2005几个性能优化综述
  • windows phone7 mango 多人在线游戏
  • ISAG短信上下行的纠结
  • ASP.NET MVC3书店--第三节 视图与视图模型(转)
  • ASP.NET Session丢失问题原因及解决方案
  • SetWaitableTimer 通过异步程序调用(APC)实现的定时功能
  • C#扩展和收缩代码
  • Activity的taskAffinity属性
  • C# Winform利用POST传值方式模拟表单提交数据(Winform与网页交互)
  • Oracle Namespace 说明
  • 4个实用的微服务测试策略
  • Android Studio:GIT提交项目到远程仓库
  • bootstrap创建登录注册页面
  • Date型的使用
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • ES6系列(二)变量的解构赋值
  • fetch 从初识到应用
  • Java IO学习笔记一
  • JAVA多线程机制解析-volatilesynchronized
  • Linux下的乱码问题
  • 分布式任务队列Celery
  • 入口文件开始,分析Vue源码实现
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 我从编程教室毕业
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 用 Swift 编写面向协议的视图
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​Spring Boot 分片上传文件
  • #define、const、typedef的差别
  • #NOIP 2014# day.2 T2 寻找道路
  • (02)Hive SQL编译成MapReduce任务的过程
  • (3)nginx 配置(nginx.conf)
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • ../depcomp: line 571: exec: g++: not found
  • .net Application的目录
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .net 设置默认首页
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • [8-27]正则表达式、扩展表达式以及相关实战
  • [android学习笔记]学习jni编程
  • [AutoSar]BSW_Com02 PDU详解
  • [C#]C# OpenVINO部署yolov8图像分类模型
  • [codevs 1296] 营业额统计
  • [HackMyVM]靶场 Quick3