如何用java.util.Date表达"never"?

dea*_*mon 5 java coding-style date

我有一个带有"deletionDate"和"experiationDate"字段的类,这两个字段都可以是未定义的,这意味着该对象是删除还是有过期日期.

我的第一个方法是:

private Date deletionDate = null; // null means not deleted
Run Code Online (Sandbox Code Playgroud)

记住"清洁代码"这本书时,我记得最好使用富有表现力的名字而不是评论.所以我目前的解决方案是:

private static final Date NEVER = null;
private Date deletionDate = NEVER;
Run Code Online (Sandbox Code Playgroud)

我可以在Date周围使用一个包装类,但这会使JPA映射复杂化.

你怎么看呢?你怎么表达"从不"?

chb*_*urd 11

永远不会永远,不是1999年1月1日.

我会坚持你的第一个解决方案.空日期意味着它尚未发生.

也许你可以用以下东西包装它:

boolean isNeverDeleted(){
    return deletionDate == null;
}
Run Code Online (Sandbox Code Playgroud)