如下面的代码所述,]
public Date getSomeDate() { return someDate; }
将为您提供findbug错误issue。
建议的解决方案是在getter和setter中都复制Date对象,例如
public Date getSomeDate() { return new Date(someDate.getTime()); }
这是一种好方法还是有其他替代方法?
Java中有没有不可变的日期库可以克服此问题?
这更像是问题1和2的后续步骤。如问题所述,下面的代码public Date getSomeDate(){return someDate; }会给你findbug错误的问题。建议的...
JodaTime具有不变的日期。
当然,可以在吸气剂中使用Date
构造函数,为什么不可以呢?
关注人群...
根据您的用例,您可以返回someDate.getTime()
而无需将其包装在Date
中。
请稍候...通过在getSomeDate
和setSomeDate
方法中复制对象,我们无法消除安全风险,因为更改后的对象通过setSomeDate
返回并且副本保留更改后的值。为了解决这种安全问题,有必要删除setSomeDate
,或者完全不用担心。
我使用java.time.LocalDate,发现它比java.util.Date好得多