All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.hugh.util.EntityCompareUtils Maven / Gradle / Ivy

The newest version!
package com.github.hugh.util;

import com.github.hugh.bean.dto.EntityCompareResult;
import com.github.hugh.components.entity.EntityCompare;
import com.github.hugh.exception.ToolboxException;

import java.util.List;

/**
 * 实体属性
 *
 * @author hugh
 * @since 2.5.6
 */
public class EntityCompareUtils {
    private EntityCompareUtils() {
    }

    /**
     * 比较两个对象是否不同,忽略指定属性。
     *
     * @param obj1             对象1
     * @param obj2             对象2
     * @param ignoreProperties 需要忽略比较的属性列表
     * @return 如果两个对象不同,返回 true;否则,返回 false。
     */
    public static boolean isObjDiff(Object obj1, Object obj2, String... ignoreProperties) {
        return ListUtils.isNotEmpty(compare(obj1, obj2, ignoreProperties));
    }

    /**
     * 判断两个对象是否相同,并忽略指定属性。
     *
     * @param obj1             对象1
     * @param obj2             对象2
     * @param ignoreProperties 需要忽略比较的属性列表
     * @return 如果两个对象相同,返回 true;否则,返回 false。
     */
    public static boolean isObjSame(Object obj1, Object obj2, String... ignoreProperties) {
        return ListUtils.isEmpty(compare(obj1, obj2, ignoreProperties));
    }

    /**
     * 比较两个对象的属性,返回它们之间的差异信息。
     *
     * @param obj1             对象1
     * @param obj2             对象2
     * @param ignoreProperties 忽略比较的属性
     * @return 两个对象之间的差异信息列表
     */
    public static List compare(Object obj1, Object obj2, String... ignoreProperties) {
        try {
            // 比较两个对象的属性
            return EntityCompare.on(obj1, obj2, ignoreProperties).compareProperties();
        } catch (Exception exception) {
            throw new ToolboxException(exception);
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy