91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中2個對象字段值怎么比較是否相同

發布時間:2022-04-14 13:46:40 來源:億速云 閱讀:700 作者:iii 欄目:開發技術

這篇文章主要介紹了Java中2個對象字段值怎么比較是否相同的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Java中2個對象字段值怎么比較是否相同文章都會有所收獲,下面我們一起來看看吧。

工具類

package com.shucha.deveiface.biz.utils;
 
/**
 * @author tqf
 * @Description
 * @Version 1.0
 * @since 2022-03-21 16:50
 */
 
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;
 
/**
 * @author tqf
 * @Description  接口請求參數類
 * @Version 1.0
 * @since 2020-08-03 20:06
 */
@Data
@Accessors(chain = true) //注解用來配置lombok如何產生和顯示getters和setters的方法
public class ApIData {
 
    /**
     * 身份證號
     */
    private String ident_card;
 
    /**
     * 姓名
     */
    private String name;
 
    /**
     * 戶號  水務局使用查詢
     */
    private String hh;
 
    /**
     * 用水月份  YYYY-MM
     */
    private String month;
 
    /**
     * 房東用戶ID
     */
    private String owner_id;
 
    /**
     * 所屬街道
     */
    private String street_name;

}

關于“Java中2個對象字段值怎么比較是否相同”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Java中2個對象字段值怎么比較是否相同”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

商水县| 安国市| 泗阳县| 河间市| 札达县| 苍山县| 三亚市| 大英县| 景宁| 佳木斯市| 东莞市| 南充市| 资溪县| 曲阜市| 博白县| 老河口市| 新化县| 绥阳县| 内乡县| 济源市| 浙江省| 花莲县| 保康县| 巴彦县| 勐海县| 宜黄县| 台湾省| 荣成市| 富川| 古田县| 长葛市| 嘉义县| 永川市| 乌鲁木齐县| 漠河县| 余庆县| 托里县| 七台河市| 平阴县| 合山市| 黔江区|