1. /**
  2. * Copyright © 2018 fwz Info. Tech Ltd. All rights reserved.
  3. *
  4. * @Package: com.sm.utils
  5. * @author: 冯文哲
  6. * @date: 2018年7月3日 上午11:53:09
  7. */
  8. package com.sm.utils;
  9.  
  10. import java.beans.BeanInfo;
  11. import java.beans.Introspector;
  12. import java.beans.PropertyDescriptor;
  13.  
  14. /**
  15. *
  16. * @author: 冯文哲
  17. * @date: 2018年7月3日 上午11:53:09
  18. *
  19. */
  20. public class CopyUtils {
  21. /**
  22. *
  23. * @Description:复制属性 bean to bean
  24. * @author: 冯文哲
  25. * @date: 2018年7月3日 上午11:54:09
  26. * @param source 数据元Bean
  27. * @param dest 目标实体bean
  28. * @throws Exception
  29. *
  30. */
  31. public static void Copy(Object baseBean, Object targetBean) throws Exception {
  32. // 获取属性
  33. BeanInfo sourceBean = Introspector.getBeanInfo(baseBean.getClass(),Object.class);
  34. PropertyDescriptor[] sourceProperty = sourceBean.getPropertyDescriptors();
  35.  
  36. BeanInfo destBean = Introspector.getBeanInfo(targetBean.getClass(),Object.class);
  37. PropertyDescriptor[] destProperty = destBean.getPropertyDescriptors();
  38.  
  39. try {
  40. for (int i = 0; i < sourceProperty.length; i++) {
  41.  
  42. for (int j = 0; j < destProperty.length; j++) {
  43.  
  44. if (sourceProperty[i].getName().equals(destProperty[j].getName()) && sourceProperty[i].getPropertyType() == destProperty[j].getPropertyType()) {
  45. // 调用source的getter方法和dest的setter方法
  46. destProperty[j].getWriteMethod().invoke(targetBean,sourceProperty[i].getReadMethod().invoke(baseBean));
  47. break;
  48. }
  49. }
  50. }
  51. } catch (Exception e) {
  52. throw new Exception("属性复制失败:" + e.getMessage());
  53. }
  54. }
  55.  
  56. }

  

java反射bean to bean的更多相关文章

  1. 利用Java反射机制将Bean转成Map

    import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang ...

  2. 通过java反射,封装bean

    上周有一个封装javabean的流程,成员变量有好多,一路写if(!=null){setXXX} 真的好麻烦,有时候一不小心还会漏掉,很是麻烦,就想到用反射的方法自动进行拼装bean. bean pa ...

  3. Java反射 - 简单的给Bean赋值和取值

    由于项目的实际需要,所以利用java反射原理写了一个简单给bean赋值和取值通用的类,在此记录下方便自己日后用到,也为需要的兄弟提供个参考例子. 工具类BeanRefUtil:   package c ...

  4. java 反射bean

    描述:新bean和旧bean拥有相同的字段属性.将旧bean的属性值,赋给新bean. Java代码如下: /** * 反射Bean * @param bean 反射的对象 * @param newB ...

  5. Java自定义注解源码+原理解释(使用Java自定义注解校验bean传入参数合法性)

    Java自定义注解源码+原理解释(使用Java自定义注解校验bean传入参数合法性) 前言:由于前段时间忙于写接口,在接口中需要做很多的参数校验,本着简洁.高效的原则,便写了这个小工具供自己使用(内容 ...

  6. 使用 Java 配置进行 Spring bean 管理--转

    概述 众所周知,Spring 框架是控制反转 (IOC) 或依赖性注入 (DI) 模式的推动因素,而这种推动是通过基于容器的配置实现的.过去,Spring 允许开发人员使用基于 XML 的配置,通过利 ...

  7. MinerBean.java 数据库表 miner bean

    MinerBean.java 数据库表 miner bean package com.iteye.injavawetrust.miner; import java.util.Date; /** * 数 ...

  8. Java中的各种bean对应的意义(VO,PO,BO,QO, DAO,POJO,DTO)

    VO(value object) 值对象 通常用于业务层之间的数据传递,用 new 关键字创建,由 GC 回收的,和 PO 一样也是仅仅包含数据而已.但应是抽象出的业务对象 , 可以和表对应 , 也可 ...

  9. spring 配置 Java配置类装配bean

    https://www.cnblogs.com/chenbenbuyi/p/8457700.html 自动化装配的确有很大的便利性,但是却并不能适用在所有的应用场景,比如需要装配的组件类不是由自己的应 ...

随机推荐

  1. 造成ORA-01843 无效的月份 的一些原因

    1) 当我们在一个中文环境的客户端使用如下sql语句INSERT INTO "temptable" ( DELIVER_DATE ) VALUES (TO_DATE('27-Jun ...

  2. Oracle数据库--PL/SQL存储过程和函数的建立和调用

    1.存储过程建立的格式: create or replace procedure My_Procedure is begin --执行部分(函数内容); end; / 例子:(以hr表为例) crea ...

  3. 适用于vue项目的打印插件(转载)

    出处:https://www.cnblogs.com/lvyueyang/p/9847813.html // 使用时请尽量在nickTick中调用此方法 //打印 export default (re ...

  4. ASP.NET MVC 此安装不支持该项目类型解决方法

    http://www.cnblogs.com/younggun/archive/2011/03/03/1969498.html ASP.NET MVC  此安装不支持该项目类型解决方法 打开 .csp ...

  5. DCT变换、DCT反变换、分块DCT变换

    一.引言 DCT变换的全称是离散余弦变换(Discrete Cosine Transform),主要用于将数据或图像的压缩,能够将空域的信号转换到频域上,具有良好的去相关性的性能.DCT变换本身是无损 ...

  6. Centos7搭建SS以及加速配置的操作记录

    部署 Shadowsocks之前,对它做了一个简单的了解,下面先介绍下.一道隐形的墙众所周知,天朝局域网通过 GFW (中国防火墙长城:英文名称Great Firewall of China,简写为G ...

  7. C语言复习---用筛选法求100之内的素数

    #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int i, j; ] ...

  8. CM记录-CDH大数据平台实施经验总结2016(转载)

    CDH大数据平台实施经验总结2016(转载) 2016年负责实施了一个生产环境的大数据平台,用的CDH平台+docker容器的方式,过了快半年了,现在把总结发出来. 1. 平台规划注意事项 1.1 业 ...

  9. 20155314 2016-2017-2 《Java程序设计》第8周学习总结

    20155314 2016-2017-2 <Java程序设计>第8周学习总结 教材学习内容总结 了解NIO 会使用Channel.Buffer与NIO2 会使用日志API.国际化 会使用正 ...

  10. github for Mac 教程

    Mac系统自带git,所有我们使用Mac搬的github客户端,无需安装git,所以使用github for Mac 超级简单,下载安装就好了. 1github for Mac 下载地址:https: ...