广告
返回顶部
首页 > 资讯 > 精选 >Java中2个对象字段值怎么比较是否相同
  • 121
分享到

Java中2个对象字段值怎么比较是否相同

2023-06-30 02:06:07 121人浏览 独家记忆
摘要

这篇文章主要介绍了Java中2个对象字段值怎么比较是否相同的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java中2个对象字段值怎么比较是否相同文章都会有所收获,下面我们一起来看看吧。工具类package&nb

这篇文章主要介绍了Java中2个对象字段值怎么比较是否相同的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java中2个对象字段值怎么比较是否相同文章都会有所收获,下面我们一起来看看吧。

工具

package com.shucha.deveiface.biz.utils;  import com.shucha.deveiface.biz.model.Comparison; import java.lang.reflect.Field;import java.util.ArrayList;import java.util.List; public class CompareObjUtil {     public static List<Comparison> compareObj(Object beforeObj, Object afterObj) throws Exception{        List<Comparison> diffs = new ArrayList<>();         if(beforeObj == null) {            throw new RuntimeException("原对象不能为空");        }        if(afterObj == null) {            throw new RuntimeException("新对象不能为空");        }        if(!beforeObj.getClass().isAssignableFrom(afterObj.getClass())){            throw new RuntimeException("两个对象不相同,无法比较");        }         //取出属性        Field[] beforeFields = beforeObj.getClass().getDeclaredFields();        Field[] afterFields = afterObj.getClass().getDeclaredFields();        Field.setAccessible(beforeFields, true);        Field.setAccessible(afterFields, true);         //遍历取出差异值        if(beforeFields != null && beforeFields.length > 0){            for(int i=0; i<beforeFields.length; i++){                Object beforeValue = beforeFields[i].get(beforeObj);                Object afterValue = afterFields[i].get(afterObj);                if((beforeValue != null && !"".equals(beforeValue) && !beforeValue.equals(afterValue)) || ((beforeValue == null || "".equals(beforeValue)) && afterValue != null)){                    Comparison comparison = new Comparison();                    comparison.setField(beforeFields[i].getName());                    comparison.setBefore(beforeValue);                    comparison.setAfter(afterValue);                    comparison.setIsUpdate(true);                    diffs.add(comparison);                }            }        }         return diffs;    }} public static void main(String[] args) throws Exception {        apiData apIData = new ApIData()                .setName("张三")                .setMonth("5")                .setHh("1");        ApIData apIData1 = new ApIData()                .setName("张三")                .setMonth("9")                .setHh("35");        List<Comparison> list = CompareObjUtil.compareObj(apIData, apIData1);        System.out.println(list);    }
package com.shucha.deveiface.biz.model; import lombok.Data;import lombok.experimental.Accessors; @Data@Accessors(chain = true) //注解用来配置lombok如何产生和显示getters和setters的方法public class ApIData {         private String ident_card;         private String name;         private String hh;         private String month;         private String owner_id;         private String street_name;}

关于“Java中2个对象字段值怎么比较是否相同”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Java中2个对象字段值怎么比较是否相同”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: Java中2个对象字段值怎么比较是否相同

本文链接: https://www.lsjlt.com/news/327094.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java中2个对象字段值比较是否相同
    1、工具类 package com.shucha.deveiface.biz.utils; import com.shucha.deveiface.biz.model.Co...
    99+
    2022-11-13
  • Java中2个对象字段值怎么比较是否相同
    这篇文章主要介绍了Java中2个对象字段值怎么比较是否相同的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java中2个对象字段值怎么比较是否相同文章都会有所收获,下面我们一起来看看吧。工具类package&nb...
    99+
    2023-06-30
  • java怎么比较对象是否相等
    在Java中,可以使用以下几种方法来比较对象是否相等: 使用`==`运算符:`==`运算符用于比较两个对象的引用是否相等,即是否...
    99+
    2023-10-28
    java
  • 怎么用Java比较两个对象中全部属性值是否相等
    本篇内容介绍了“怎么用Java比较两个对象中全部属性值是否相等”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!例如下述Java类:import...
    99+
    2023-06-20
  • Java怎么比较两个对象并获取不相等的字段
    这篇文章主要介绍“Java怎么比较两个对象并获取不相等的字段”,在日常操作中,相信很多人在Java怎么比较两个对象并获取不相等的字段问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java怎么比较两个对象并获取...
    99+
    2023-06-21
  • 怎么用go语言比较两个对象是否深度相同
    这篇文章主要介绍“怎么用go语言比较两个对象是否深度相同”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用go语言比较两个对象是否深度相同”文章能帮助大家解决问题。前言:func Dee...
    99+
    2023-06-30
  • Java比较两个对象中全部属性值是否相等的方法
    例如下述Java类: import java.io.Serializable; import java.util.List; public class Bean_Topolog...
    99+
    2022-11-12
  • 在Java中怎么判断两个Long对象是否相等
    这篇文章主要介绍“在Java中怎么判断两个Long对象是否相等”,在日常操作中,相信很多人在在Java中怎么判断两个Long对象是否相等问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”在Java中怎么判断两个L...
    99+
    2023-06-20
  • Java利用stream流,判断列表中对象的某个字段的值是否与其它对象重复【批量导入,字段重复性的校验】
    文章目录 1、通过toMap2、通过groupBy1、复杂一点的写法【不推荐,但可以学习一下】2、简单版写法 3、其它:通过list和set4、补充【判断拼接字段的处理⭐】 Java利...
    99+
    2023-08-31
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作