【发布时间】:2015-08-14 00:22:42
【问题描述】:
我很困惑。我试过了,我不能为没有日期的项目分配空值。我究竟做错了什么?
private static String projectDate = null;
public static void main(String[] args) throws Exception {
DateFormat formatter = new SimpleDateFormat("dd.MM.yyyy");
List<Project> projects;
if (projects == null || projects.size() == 0) {
} else {
for (Project project : projects) {
try {
projectDate = formatter.format(project.getLastAnalyzedDate().getTime());
} catch (Exception e) {
System.err.println("Last Analyzed failed");
}
outFile.println("<LastAnalyzed>" + projectDate + "</LastAnalyzed>");
}
}
}
【问题讨论】:
-
我不明白。
null是什么? -
我只想返回空值。我有日期的价值,没有日期。我想得到:Windows 8(上次分析时间:2015 年 12 月 5 日); Windows 10(上次分析:null);
-
尽管您的问题尚不清楚,但根据您上面的评论,我倾向于相信您期望
projectDate在project.getLastAnalyzedDate()返回 null 并且您在 catch 块中捕获NullPointerException时为 null .如果是这种情况,projectDate将保留其先前的值,除非您在project.getLastAnalyzedDate()返回 null 时将其设置为 null。我会等待你的确认,但如果这是真的,你可能想改变你处理空值的方式。 -
@Owl 是的,你是对的。我想抓住“空”。也就是只加catch(NullPointerException e)之类的?
-
@Owl 我解决了这个问题,但我认为它很糟糕 "catch (NullPointerException e) {projectDate=null;}"