我正在编写一些逻辑,要求将空日期视为将来永远的意义(有关日期是一个到期日期,可能存在也可能不存在).我希望只将null转换为最大可能的Date,而不是在整个代码中为null日期添加特殊情况.我没有看到任何明显的方法来获得这样的价值而不用硬编码.什么是获得使用Date实现的最大值的最佳方法?
cjs*_*hno 106
尝试
new Date(Long.MAX_VALUE)
Run Code Online (Sandbox Code Playgroud)
它应该为您提供Java中可能的最长日期值.
Tom*_*Tom 21
使用Long.MAX_VALUE将您想要的功能封装在您自己的类中,很可能会导致您遇到问题.
class ExpirationDate {
Date expires;
boolean hasExpiration() {
return expires == null;
}
Date getExpirationDate() {
return expires;
}
boolean hasExpired(Date date) {
if (expires == null) {
return true;
} else {
return date.before(expires);
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
+1到Long.MAX_VALUE建议.如果您按日期字段对事物进行排序,这似乎会对您有所帮助.
但是,不是在需要日期的某个大常量值中构造日期,而是使用全局可见的单例来保存表示特殊值的Date实例:
class DateUtil
{
public static final Date NO_EXPIRE = new Date( Long.MAX_VALUE );
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用简单的身份比较(mydate == DateUtils.NO_EXPIRE)来测试特定日期是否属于您的特殊情况,而不是obj.equals(); (即mydate.equals(DateUtils.NO_EXPIRE);)
| 归档时间: |
|
| 查看次数: |
73828 次 |
| 最近记录: |