Ram*_*esh 3 java java.util.date
我们有一个公共静态util方法,它可以解析一个字符串并返回一个Date对象,但是如果解析的字符串无法转换为Date对象,它也会抛出ParseException.
现在,在另一个类中,我希望使用上面描述的util方法将静态最终Date初始化为一个值.但是假设util方法抛出ParseException,则不允许这样做.
这是我想要做的,这是不允许的
public static final MY_DATE = Util.getDateFromString('20000101');
Run Code Online (Sandbox Code Playgroud)
保持此日期字段"最终"的建议方法是什么?
那么你可以使用静态初始化块:
public static final Date MY_DATE;
static {
try {
MY_DATE = Util.getDateFromString("20000101");
} catch (ParseException e) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我会建议不要这样做.Date是一个可变类型 - 通过公共静态最终变量公开它是一个坏主意.
相反,我建议您使用具有许多不可变日期/时间类型的Joda Time - 并且是处理日期和时间的完全更好的库.看起来你想要:
public static final LocalDate START_OF_JANUARY_2000 = new LocalDate(2000, 1, 1);
Run Code Online (Sandbox Code Playgroud)
请注意,即使你做决定使用java.util.Date,它并没有多大意义,解析字符串在我看来-你知道的数值的数值,那么,为什么不只是提供他们的方式?如果你没有一个合适的方法来构建Date一年/月/日(大概应用适当的时区),那么你可以很容易地写一个.
| 归档时间: |
|
| 查看次数: |
12447 次 |
| 最近记录: |