我正在使用Java并遇到一个随机问题。在这里,我共享了我的问题的示例代码。
我想用我的自定义字符串格式初始化一些静态最终日期字段。
public class Sample {
protected static final Date MAX_DATE ;
static {
try {
MAX_DATE = new SimpleDateFormat("yyyy-MM-dd").parse("2099-12-31");
} catch (ParseException e) {
e.printStackTrace();
}
}
}
当直接放在线下时,它要求尝试并抓住。
protected static final Date MAX_DATE= new SimpleDateFormat("yyyy-MM-dd").parse("2099-12-31");
当我按照上面的代码所述添加try and catch时,它会引发错误
Variable 'MAX_DATE' might not have been initialized
当使用下面的代码初始化时,它开始Cannot assign a value to final variable 'MAX_DATE'
在第5行上引发错误。
protected static final Date MAX_DATE=null;
有人可以帮我解决这个问题吗?任何帮助将不胜感激。
如果您只需要一个简单的日期,则应使用LocalDate
而不是Date
:
protected static final LocalDate MAX_DATE = LocalDate.of(2099, 12, 31);
如果(由于某种原因)必须从字符串中获取日期,则也可以按以下方式使用它:
protected static final LocalDate MAX_DATE = LocalDate.parse("2099-12-31");
万一这真的很困难
java.util.Date
这样的事情应该可以解决问题:
protected static final LocalDate MAX_DATE = Date.from(LocalDate.parse("2088||12||31", DateTimeFormatter.ofPattern("yyyy||MM||dd")).atStartOfDay(ZoneId.systemDefault()).toInstant());
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句