- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有确切描述的问题here .这就是 BigDecimal
的等于被破坏,在一个类中有这样一个字段会阻止使用 @EqualsAndHashCode
.我想出的唯一解决方案是 exclude
这样的领域,但这当然不是最佳的。
有什么解决办法吗?有什么方法可以为字段/类型注入(inject)我自己的比较器?
最佳答案
我最近遇到了同样的问题。
基本上,您会看到以下行为:
BigDecimal x = new BigDecimal("2");
BigDecimal y = new BigDecimal("2.00");
System.out.println(x.equals(y)); // False
System.out.println(x.compareTo(y) == 0 ? "true": "false"); // True
没有一个好的解决方案可以开箱即用,但您可以重新定义在 hashCode & equals 中使用的 BigDecimal 字段值:
@EqualsAndHashCode
class Test Class {
@EqualsAndHashCode.Exclude
private BigDecimal amount;
...
@EqualsAndHashCode.Include
private BigDecimal getAmountForEquals() {
return ofNullable(amount).map(BigDecimal::stripTrailingZeros).orElse(null);
}
}
关于java - 如何使 Lombok 的 EqualsAndHashCode 与 BigDecimal 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36625347/
@EqualsAndHashcode class MyClass { String property1; List newClassList; } @EqualsAndHashcode
我将 Project Lombok 与 Eclipse 一起使用,我可以编译以下类。 现在我想通过使用注释 @EqualsAndHashCode.Exclude 像 shown in the Lomb
我需要通过内部对象字段创建@EqualsAndHashCode。我有两个实体 WorkPlace 和 Account。 简码: ***WorkPlace.java*** public class Wo
我有一系列 POJO,我一直在使用 Lombok 来填写,事情非常顺利。我已经开始使用 Java 8 的Optional<> 类将一些东西设置为可选,但是在将字节数组设置为可选时遇到了障碍。在我的单元
我有一个使用@EqualsAndHashCode 扩展父类的类。我在使用 Lombok 1.16.0 和 Java 8 时遇到编译错误 @EqualsAndHashCode(doNotUseGette
如何使用 @EqualsAndHashCode 和 Include,Java 的 Lombok 库。 @EqualsAndHashCode.Include( ) 如何让Equals比较class id
我有一个名为 MyClass 的类,它使用 lombok 注释 @EqualsAndHashCode(of = { "id" }) 。属性 id 是 String 类型。有了这个,我假设当我有这些类的
对于下面的类 Sonar 提示@EqualsAndHashCode( Lombok 注释)的未覆盖条件。我曾尝试添加 '//NOSONAR' 来忽略,但它没有帮助。请参阅下面的代码以供引用。 impo
使用 Eclipse JUnit 和 gradle 测试运行单元测试时,我得到不同的结果。有这样的类(class): @Getter @Setter @EqualsAndHashCode public
我有一个类,我继承了一些字段,其中包括我的 id 字段和我对对象的不同字段。我正在使用 lombok 生成 @EqualsAndHashCode 和 @ToString,但只想使用我的父类(super
我有确切描述的问题here .这就是 BigDecimal的等于被破坏,在一个类中有这样一个字段会阻止使用 @EqualsAndHashCode .我想出的唯一解决方案是 exclude这样的领域,但
我有一个Java类,带有lombok生成的equals和hashCode @EqualsAndHashCode @AllArgsConstructor public class MyJavaClass
我在 Hibernate 实体上使用 Lombok,并且有继承: @MappedSuperclass @Data public class BaseEntity { @Id @Gene
我是一名优秀的程序员,十分优秀!