首页 > 编程语言 >java中对比两个对象哪些字段不同(反射获取对象的字段和value值)

java中对比两个对象哪些字段不同(反射获取对象的字段和value值)

时间:2024-10-09 10:25:48浏览次数:6  
标签:段值 java field 对象 value 获取 字段

场景:当需要对比两个对象的哪些字段的value值不同时,使用

原理: 通过反射来获取对象中每个字段的value值,进行对比

1.获取需要比对对象的Class对象

 比对的是obpPurQualityCheckTaskItem和obpPurQualityTaskItemExportDto对象,但因为他们是两个不同的类,所以都需要获取

2.获取需要比对的对象中的字段

  注:getDeclaredField(参数)是获取对象的指定的参数的字段,

    getDeclaredFields是获取对象的所有字段

  (1) 获取对象中的所有字段

   (2)获取某些指定的字段

    1.先定义一个字符串数组,该数组中包括了需要对比的字段名

    2.定义类型为Field的集合,用于字段的存储

     3.循环filedNames数组,使用class的getDeclaredField方法获取对应类的字段名

 3.获取存储字段的集合的下标值,比对字段值

 通过下标获取到fields 和 fieldExports的字段的field类,使用Field的get方法获取到字段值

其中,

 value1,value2为对应的字段值

下述代码是为了获取到实体类的Schema的注解中的description参数的值,该值一般为描述字段的中文意思

总结:

  1.先获取到比对对象的类

  2.确定需要比对的字段,(1)全部都比对(2)固定字段比对

  3.循环field集合,使用field的get方法,分别传入比对的对象作为参数,获取对应的字段的值,进行比较

 

 

 

 

  

标签:段值,java,field,对象,value,获取,字段
From: https://www.cnblogs.com/123-hh/p/18453684

相关文章

  • 基于java+springboot的HSK学习平台系统
    本HSK学习平台系统基于Java与SpringBoot技术构建,旨在为汉语学习者提供高效、便捷的HSK学习环境。系统在设计上注重用户体验和功能完整性。采用Java语言进行底层开发,保证了系统的稳定性和性能。SpringBoot框架则为系统提供了快速开发和部署的能力,使得系统能够......
  • (分享源码)计算机毕业设计必看必学 上万套实战教程手把手教学JAVA、PHP,node.js,C++、pyth
    摘要信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对社区防疫管理等问题,对社区防疫管理系统进行研究分析,然后开发设计出基于Django框架的社区防......
  • 从混乱到整洁:JavaScript学习中的代码演变之旅
    学习中的代码演变在JavaScript的学习之旅中,初学者常产出略显混乱的代码,这实属正常。每个错误与不易理解的代码段都是成长的一部分,随着时间推移,你将逐渐掌握编写整洁代码的技巧。混乱中的创新追求完美并非初学者的首要任务,这样反而能激发你尝试多样化的解决方案。比如,在构建待办......
  • Java反射
    Java反射参考文章:JAVA反序列化-反射机制Java反射(超详细!)Java反射(简单详细且易懂,快速入门)0准备一个User类packageorg.example.reflect;publicclassUser{publicStringname;privateintage;publicUser(){}privateUser(Stringname){......
  • java 按行读取文件,并筛选包含指定字符行数据
    `importjava.io.BufferedReader;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.util.Collections;importjava.util.List;importjava.util.stream.Collectors;publicclassTestController{publicstaticvoidmain(String[]......
  • Java反序列化
    Java反序列化什么是序列化和反序列化如果我们需要持久化Java对象比如将Java对象保存在文件中,或者在网络传输Java对象,这些场景都需要用到序列化。序列化:将数据结构或对象转换成二进制字节流的过程反序列化:将在序列化过程中所生成的二进制字节流转换成数据结构或者对象的......
  • 【毕设项目推荐】Java的房屋租赁系统
    今天给大家介绍一款基于Java的房屋租赁系统,页面非常精美功能且丰富项目介绍房屋租赁系统(verio_house)是一个基于SSM开发的标准JavaWeb项目。整体页面非常的简约大气(个人觉得我设计的页面还是非常的Beautiful)。整体项目的完整度较高,但是当时没有花精力去对接支付系......
  • java复制查询数组-cnblog
    java数组复制数组copyOf(待复制数组,复制后新数组的长度)如果复制后数组的长度,长于原来数组,多出来的元素会被补0,如果新数组元素少会从第一个元素,取到指定元素长度packagenb;importjava.util.Arrays;publicclasscopyOf_{publicstaticvoidmain(String[]......
  • JAVA基础: synchronized 和 lock的区别、synchronized锁机制与升级
    1synchronized和lock的区别synchronized是一个关键字,lock是一个接口,实际使用的是实现类synchronized通过触发的是系统级别的锁机制,lock是API级别的锁机制synchronized自动获得锁,自动释放锁。lock需要通过方法获得锁并释放锁synchronized可以修饰代码段和方法,lock......
  • JAVA基础:Lock不同的锁形式
    1.1可重入锁synchronized就是一个可重入锁使用lock时,常用的ReentryLock就是可重入锁当一个线程在获得a对象锁之后,可以继续重复获得对象锁代码形式就是线程调用同步代码段,在没有执行完毕前,又调用了该对象的另一个同步代码段publicclassTest4{publicstatic......