我在与龙目岛建设者这个奇怪的问题上打破了我的头脑和时间。
让我们说我们有一个班级
@builder
class DateTest {
@Column (name="insert_time")
private Date curDate;
}
现在在运行findbugs时,它会抱怨此错误EI_EXPOSE_REP2。构建器的原因是不使用Date对象的副本。
它的正确解决方法是什么?关键是我不想将date数据类型更改为String只是为了解决方法,我不想压制findbugs错误,因为它实际上不会解决我们的问题。有人找到了适当的解决方法吗?
答案 0 :(得分:0)
龙目岛没有办法实现这一目标。 Lombok构建器不会创建副本,也不会构建构造函数或setter。正确的解决方法是不使用自动生成的构建器,至少不是在类级别。
您可以使用构造函数来解决此问题,而不是为您执行复制:
@Builder
private DateTest createDateTest(Date curDate) {
…
}
当然,你无法从自动生成的构造函数中获利,但至少你得到了构建器。