Java Findbugs使用Lombok builder创建问题
在这个与龙目巨人有关的奇怪问题上,我的头脑和时间都崩溃了 假设我们有一节课Java Findbugs使用Lombok builder创建问题,java,builder,findbugs,lombok,Java,Builder,Findbugs,Lombok,在这个与龙目巨人有关的奇怪问题上,我的头脑和时间都崩溃了 假设我们有一节课 @builder class DateTest { @Column (name="insert_time") private Date curDate; } 现在在运行findbugs时,它会抱怨这个错误。原因是生成器不使用日期对象的副本 什么是正确的修复方法?关键是我不想仅仅为了解决问题而将日期数据类型更改为字符串,也不想抑制findbugs错误,因为它实际上不会解决我们的问题。有人找到了合适的修复方法吗?龙
@builder
class DateTest {
@Column (name="insert_time")
private Date curDate;
}
现在在运行findbugs时,它会抱怨这个错误。原因是生成器不使用日期对象的副本
什么是正确的修复方法?关键是我不想仅仅为了解决问题而将日期数据类型更改为字符串,也不想抑制findbugs错误,因为它实际上不会解决我们的问题。有人找到了合适的修复方法吗?龙目无路可走。Lombok构建器不会创建副本,也不会创建构造函数或setter。正确的解决方法是不使用自动生成的生成器,至少不在类级别 您可以通过使用构造函数(而不是为您执行复制)来解决此问题:
@Builder
private DateTest createDateTest(Date curDate) {
…
}
当然,你不能从自动生成的构造器中获利,但至少你得到了构造器。使用Lombok无法实现这一点。Lombok构建器不会创建副本,也不会创建构造函数或setter。正确的解决方法是不使用自动生成的生成器,至少不在类级别 您可以通过使用构造函数(而不是为您执行复制)来解决此问题:
@Builder
private DateTest createDateTest(Date curDate) {
…
}
当然,你不能从自动生成的构造函数中获利,但至少你得到了生成器。一个假设的问题是客户端可以将一个可变日期传递到这个类中,然后再进行更改。一个假设的问题是客户端可以将一个可变日期传递到这个类中,然后再进行更改。