import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;public class CopyUtils {public static void Copy(Object source, Object dest) throws Exception {// 获取属性BeanInfo sourceBean = Introspector.getBeanInfo(source.getClass(),Object.class);PropertyDescriptor[] sourceProperty = sourceBean.getPropertyDescriptors();BeanInfo destBean = Introspector.getBeanInfo(dest.getClass(),Object.class);PropertyDescriptor[] destProperty = destBean.getPropertyDescriptors();try {for (int i = 0; i < sourceProperty.length; i++) {for (int j = 0; j < destProperty.length; j++) {if (sourceProperty[i].getName().equals(destProperty[j].getName())  && sourceProperty[i].getPropertyType() == destProperty[j].getPropertyType()) {// 调用source的getter方法和dest的setter方法destProperty[j].getWriteMethod().invoke(dest,sourceProperty[i].getReadMethod().invoke(source));break;}}}} catch (Exception e) {throw new Exception("属性复制失败:" + e.getMessage());}}public static void main(String[] args) throws Exception{Device device = new Device();device.setDevId("99999");Device devices = new Device();CopyUtils.Copy(device,devices);System.out.println(devices.getDevId());}
}

Java将一个对象的属性值copy给另一个相同的对象相关推荐

  1. Java 用反射设置对象的属性值

    为什么80%的码农都做不了架构师?>>>    /*** 用反射设置对象的属性值* @param obj 需要設置值的對象* @param fieldName 需要設置值的屬性* @ ...

  2. Java验证对象的属性值是否都为空

    package com.hzrc.apply.utils;import com.hzrc.entity.user.ApplyTemplate;import java.lang.reflect.Fiel ...

  3. Java反射获取对象的属性值

    当知道某个类,想获取类上的某个属性的值时,有时会用到Java的反射机制,如下参考: /*** 反射获取对象的属性值* @param object 对象(要遍历的对象)* @param targetFi ...

  4. Java将对象的属性值合并

    上代码: public static void main(String[] args) throws Exception {User user1 = new User();user1.setPhone ...

  5. BeanUtils只拷贝对象中属性值不为null的属性

    文章目录 问题 解决方法1(引入hutool包) 解决方法2新增方法 问题 在使用beanutils的copyProperties时候想如果参数为null的就不进行复制; 解决方法1(引入hutool ...

  6. 判断对象中属性值是否全为空

    import java.lang.reflect.Field; /*** 判断对象中属性值是否全为空** @param object* @return*/public static boolean c ...

  7. 对List对象列表属性值的快速搜索

    对于数据的搜索已有很多成熟的方案,比如Apace Lucene框架,结合ikanalyer等分词器能实现很复杂和高效的搜索,或直接使用sql语言对数据库关键字进行搜索等. 但这些搜索都很重,对于已经加 ...

  8. 利用java反射机制修改属性值

    利用java反射机制修改属性值 本文将介绍如何利用java反射机制修改属性值,废话不多说,直接上代码 1.新建一个实体类,添加属性test以及获取属性值的方法getTest() public clas ...

  9. java反射 获取Object属性值

    项目场景: 一个添加员工信息的功能,通过shiro获取当前登录用户的信息,取出其中的createId的值,在通过set方法写入. 问题描述: 通过获取的登录用户的信息发现,它是一个Object对象,然 ...

最新文章

  1. 4.2 开发者选项--电源错误报告的适配
  2. 学习Kali Linux必须知道的几点
  3. centos7 php安装
  4. ThreadLocal为什么会内存泄漏(java高级面试)
  5. 百度搜索资源平台添加自己的网站
  6. 【youcans 的 OpenCV 例程200篇】125. 形态算法之提取连通分量
  7. Python解决滑块验证,Scarpy框架采集数据到redis数据库!
  8. 【Python】Python figure显示的两种方式
  9. CXF(2.7.10) - A simple JAX-WS service
  10. java datainputstream_Java中DataInputStream的用法
  11. byte[] 转化为 string 转化为汉字和字母
  12. camera tuning名词缩写
  13. 纯干货!最全股票基础知识(上)
  14. 【ARM Coresight 介绍 3 - ARM Cortex-M DWT】
  15. 知识图谱相关会议之观后感分享与学习总结
  16. 银联卡整个pdol电子钱包扣费的过程
  17. BTT、BZZ、IPFS都是分布式存储到底有何区别?一文读懂
  18. 有愚人节活动?微软营销长备忘录:不要惨与
  19. 转---蓝海战略之父重谈“蓝海”
  20. Python scrapy环境搭建

热门文章

  1. 吴恩达机器学习作业4(python实现)
  2. 蓝桥杯 基础练习 数的读法
  3. Linux文件系统中的inode
  4. 使用next.js完成从开发到部署
  5. Why Helm? - 每天5分钟玩转 Docker 容器技术(160)
  6. LeetCode刷题(31)
  7. python项目软件代码_七套Python库快速提升您项目的代码可维护性,软件工程,代码库...
  8. controller 用 map 接收值_一文弄懂apply、map和applymap三种函数的区别
  9. CXF入门教程(一)
  10. mysql5.5 5.7区别_mysql 5.5 和5.7 安装的区别