浅拷贝工具类,快速将实体类属性值复制给VO
/**
* 浅拷贝的工具类
*/
public class PropertiesUtil { /**
* 两个类,属性名一样的元素,复制成员。
*/
public static void copy(Object source,Object target){
Class<?> sourceClass=source.getClass();
Class<?> targetClass=target.getClass();
Field [] sourceFields=sourceClass.getDeclaredFields();
//遍历成员
for (int i = 0; i < sourceFields.length; i++) {
//获取第i个元素
Field field=sourceFields[i];
//设置可见性
field.setAccessible(true);
//拿到成员名
String name = field.getName();
Field targetField=null;
try {
targetField = targetClass.getDeclaredField(name);
} catch (NoSuchFieldException e) {
//e.printStackTrace();
continue;
}
//复制属性的值
targetField.setAccessible(true);
try {
targetField.set(target,field.get(source));
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
} /**
* 两个类,属性名一样的元素,复制成员。
*/
public static <T> T copy(Object source,Class<T> targetClass){
Class<?> sourceClass=source.getClass();
T target= null;
try {
target = targetClass.newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
Field [] sourceFields=sourceClass.getDeclaredFields();
//遍历成员
for (int i = 0; i < sourceFields.length; i++) {
//获取第i个元素
Field field=sourceFields[i];
//设置可见性
field.setAccessible(true);
//拿到成员名
String name = field.getName();
Field targetField=null;
try {
targetField = targetClass.getDeclaredField(name);
} catch (NoSuchFieldException e) {
//e.printStackTrace();
continue;
}
//复制属性的值
targetField.setAccessible(true);
try {
targetField.set(target,field.get(source));
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
return target;
}
// public static void main(String[] args) {
// UserVO user1=new UserVO();
// UserVO user2=new UserVO();
// user1.setId(1L);
// user1.setUsername("zhangsan");
// copy(user1,user2);
// System.out.println(user2);
// } }
浅拷贝工具类,快速将实体类属性值复制给VO的更多相关文章
- mybatis-generator-core快速生成实体类和Mapper
日常使用Mybatis少不了和实体类和 Mapper 打交道.除了我们手写来实现,还可以使用 mybatis-generator-core 来快速生成 实体类和 Mapper. 步骤如下: 1.下载 ...
- Idea的类中使用实体类(有@Data注解)的Get/Set方法报错
今天从svn上面下了一个maven项目,导入到Idea中之后,发现有的类会使用实体类的Set/Get方法(全报错),导致该问题的原因就是因为实体类中没有这个方法,代码类似如下: @Data publi ...
- powerdesigner 使用技巧 建模工具 导出sql 导出实体类 导出word
显示comment列 Table Properties(表属性)=>Columns(列)=>Customize Columns and Filter(自定义列过滤) 勾上 comment ...
- 懒人小工具:T4生成实体类Model,Insert,Select,Delete以及导出Excel的方法
由于最近公司在用webform开发ERP,用到大量重复机械的代码,之前写了篇文章,懒人小工具:自动生成Model,Insert,Select,Delete以及导出Excel的方法,但是有人觉得这种方法 ...
- WPF——传实体类及绑定实体类属性
public class User: private string _User; public string User1 { get { return _User; } set { _User = v ...
- xml文档的解析并通过工具类实现java实体类的映射:XML工具-XmlUtil
若有疑问,可以联系我本人微信:Y1141100952 声明:本文章为原稿,转载必须说明 本文章地址,否则一旦发现,必追究法律责任 1:本文章显示通过 XML工具-XmlUtil工具实现解析soap报文 ...
- fastjson简单使用demo,@JSONField注解属性字段上与set、get方法上。实体类toString(),实体类转json的区别;_下划线-减号大小写智能匹配
一.demo代码 @JSONField注解属性字段上与set.get方法上.使用@Data注解(lombok插件安装最下方),对属性“笔名”[pseudonym]手动重写setter/getter方法 ...
- idea快速生成实体类
1.打开idea的视图,选择Database 2.选择对应的数据库[这里是mysql为例] 3.输入自己对应的内容,输入完成可点击Test Connection进行测试,成功SUCCESS 4.点击确 ...
- [转]掌握 ASP.NET 之路:自定义实体类简介 --自定义实体类和DataSet的比较
转自: http://www.microsoft.com/china/msdn/library/webservices/asp.net/CustEntCls.mspx?mfr=true 发布日期 : ...
随机推荐
- Docker权限 “Got permission denied while trying to connect to the Docker daemon socket at unix:///var/”
问题及解决办法 在普通用户下执行docker命令需要用sudo,没加sudo出现了下图所示的提示: 从上图看出,权限不足连接/var/run/docker.sock,我们看下这个文件: 可以看出,这个 ...
- Jetpack架构组件学习(3)——Activity Results API使用
原文地址:Jetpack架构组件学习(3)--Activity Results API使用 - Stars-One的杂货小窝 技术与时俱进,页面跳转传值一直使用的是startActivityForRe ...
- 开源流程引擎camunda如何扩展
市场上基于Java语言的开源工作流引擎有:osworkflow.jbpm.activiti.flowable.camunda等,其中osworkflow.jbpm流程引擎已经过时,目前主流的开源 ...
- 重学ES系列之拓展运算符
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 你真的懂Python命名吗?
转载请注明出处️ 作者:测试蔡坨坨 原文链接:caituotuo.top/7417a7f0.html 大家好,我是测试蔡坨坨. 今天,我们来聊一下Python命名那些事儿. 名为万物之始,万物始于无名 ...
- 论文解读(DCN)《Towards K-means-friendly Spaces: Simultaneous Deep Learning and Clustering》
论文信息 论文标题:Towards K-means-friendly Spaces: Simultaneous Deep Learning and Clustering论文作者:Bo Yang, Xi ...
- 从svn下载项目后出现 Error:java: Compilation failed: internaljava compiler error 解决办法
原因:出现这个问题的话,主要是因为导入的项目JDK版本与自己的不匹配. 解决方法如下: 最后,酱紫
- PowerDesigner安装
1.双击安装包进行安装 2.选择PRC 3.一路往下就行 4.将下图文件夹中的内容覆盖安装的内容 ----------------------------------------分割线 5.安装成功 ...
- REST类型网址调用
by zyi
- Centos8安装NextCloud记录
今天在网上学习了这个Nextcloud 网盘的搭建,被折磨的快崩溃了.始终是找不到答案,我在网上查了2天的资料 还是没有找到答案,今天这里总结一下安装的下面的总结: 原文出处在官网:CentOS 8 ...