feat: 实体对比方法支持忽略指定属性 (#254)

* feat: 实体对比方法支持忽略指定属性

* feat: 优化
This commit is contained in:
gyl
2023-10-20 13:50:50 +08:00
committed by GitHub
parent 5f993b9455
commit aab90914e9

View File

@@ -1,16 +1,13 @@
package org.hswebframework.web.bean;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Sets;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
@Getter
@Setter
@@ -24,13 +21,18 @@ public class Diff {
private Object after;
public static List<Diff> of(Object before, Object after) {
public static List<Diff> of(Object before, Object after, String... ignoreProperty) {
List<Diff> diffs = new ArrayList<>();
Set<String> ignores = Sets.newHashSet(ignoreProperty);
Map<String, Object> beforeMap = FastBeanCopier.copy(before, HashMap::new);
Map<String, Object> afterMap = FastBeanCopier.copy(after, HashMap::new);
for (Map.Entry<String, Object> entry : afterMap.entrySet()) {
if (ignores.contains(entry.getKey())) {
continue;
}
Object afterValue = entry.getValue();
String key = entry.getKey();
Object beforeValue = beforeMap.get(key);