编程语言
首页 > 编程语言> > 静态final java类中的Date字段

静态final java类中的Date字段

作者:互联网

我们有一个公共静态util方法,它可以解析一个字符串并返回一个Date对象,但是如果解析的字符串无法转换为Date对象,它也会抛出ParseException.

现在,在另一个类中,我希望使用上面描述的util方法将静态最终Date初始化为一个值.但是假设util方法抛出ParseException,则不允许这样做.

这是我想要做的,这是不允许的

public static final MY_DATE = Util.getDateFromString('20000101');

保持此日期字段“最终”的建议方法是什么?

解决方法:

那么你可以使用静态初始化块:

public static final Date MY_DATE;

static {
    try {
       MY_DATE = Util.getDateFromString("20000101");
    } catch (ParseException e) {
       ...
    }
}

但是,我会建议不要这样做.日期是一种可变类型 – 通过公共静态最终变量公开它是一个坏主意.

相反,我建议您使用具有许多不可变日期/时间类型的Joda Time – 并且是一个更好的库,用于处理日期和时间.看起来你想要:

public static final LocalDate START_OF_JANUARY_2000 = new LocalDate(2000, 1, 1);

请注意,即使您决定使用java.util.Date,在我的视图中解析字符串也没有多大意义 – 您在数字上知道这些值,那么为什么不以这种方式提供它们呢?如果您没有合适的方法来构建一年/月/日的日期(可能是应用适当的时区),那么您可以轻松编写一个.

标签:java,java-util-date
来源: https://codeday.me/bug/20190716/1481749.html