我想将Null Object Pattern用于java.util.Date。我有一个返回一些Date的函数,但也可能是没有返回有意义的Date。
我想避免返回null
,原因是人们为什么要避免空值(nullpointer问题)。
目前我正在返回new Date(0)
以表示" null日期"并检查returnedDate.equals(new Date(0))
下游我需要知道我是否有真实日期,但我不相信这是最好的方式。
答案 0 :(得分:3)
答案 1 :(得分:0)
我对你提出的要求感到有些困惑。
如果要声明任何类型的new Date()
对象,则该对象永远不会为空。我认为你要做的是避免将Date设置为null,而是创建一个任意日期,new Date(0)
以便稍后在你的程序中使用。
我会反对这种做法,我不认为这是最好的方式。
我的建议是将对象保持为null并进行某种检查:
Date date;
if(date != null)
{
// code goes here
}
从本质上讲,你 - 我认为 - 已经在进行这项检查(检查任意日期对象)。
提醒一下,以下是Java Date
类中定义的以下日期参数:
// Creates today's date/time
Date()
// Creates a date
Date(long)
Date(int, int, int)
Date(int, int, int, int, int)
Date(int, int, int, int, int, int)
Date(String)
一旦你有足够的信息来创建程序下游的Date
对象,我建议你创建它。
随意提供更多信息/更多代码以帮助讨论。