宋亚周
宋亚周
看下这个枚举的说明: `PrimitiveDefaultValueMode.ASSIGNED`, 可以通过如下方法修改默认值: ```java ObjectDifferBuilder.startBuilding() .comparison().ofPrimitiveTypes().toTreatDefaultValuesAs(PrimitiveDefaultValueMode.ASSIGNED).and() .build(); ```
比较两个集合对象, 会执行`de.danielbechler.diff.differ.CollectionDiffer`比较器逻辑: - 遍历working集合中的每个元素, 如果不存在于base集合中, 则认为working集合新增了元素 - 遍历base集合中的每个元素, 如果不存在于working集合中, 则认为working集合删除了元素 - 元素同时存在于两个集合中, 才会继续比较每个属性的值, 这种情况你的配置才会生效 关键代码: > de.danielbechler.diff.differ.CollectionDiffer#compareInternally > de.danielbechler.diff.access.CollectionItemAccessor#get > de.danielbechler.diff.identity.EqualsIdentityStrategy#equals 判断集合中元素是否相同, 默认调用对象的`equals`方法, 基于此, 提供两种解决办法: 1. 可以重写数据类的`equals`和`hashCode`方法, 忽略添加`ExcludedFromDiff`注解的字段 2. 自定义并配置`IdentityStrategy`