package com.oying.modules.pc.common;
|
|
import cn.hutool.core.util.ObjUtil;
|
import lombok.Data;
|
|
/**
|
* 用于封装字段值的变化记录,支持泛型比较逻辑
|
* @param <T>
|
*/
|
@Data
|
public class ValueUpdate<T> {
|
|
private final T newValue;
|
private final T oldValue;
|
|
public ValueUpdate(T newValue, T oldValue) {
|
this.newValue = newValue;
|
this.oldValue = oldValue;
|
}
|
|
public boolean isChange() {
|
return isChange(newValue, oldValue);
|
}
|
|
public boolean isChangeAndOldValueNotEmpty() {
|
return isChangeAndOldValueNotEmpty(newValue, oldValue);
|
}
|
|
public static <T> boolean isChange(T newValue, T oldValue) {
|
return ObjUtil.isNotEmpty(newValue) && !newValue.equals(oldValue);
|
}
|
|
public static <T> boolean isChangeAndOldValueNotEmpty(T newValue, T oldValue) {
|
return ObjUtil.isNotEmpty(oldValue) && isChange(newValue, oldValue);
|
}
|
|
}
|