-
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-
(null);
在第二行会报空指针异常,为什么呢?
我们进入源码看一下就知道了。
第一步
-
public final String format(Date date)
-
{
-
return format(date, new StringBuffer(),
-
).toString();
-
}
这里date为null,没问题,继续;
第二步
-
public StringBuffer format(Date date, StringBuffer toAppendTo,
-
FieldPosition pos)
-
{
-
= = 0;
-
return format(date, toAppendTo, ());
-
}
这里date为null也没问题,继续;
第三步
-
private StringBuffer format(Date date, StringBuffer toAppendTo,
-
FieldDelegate delegate) {
-
-
(date);
-
......
-
}
这里date为null也没问题,进入看一下;
第四步
-
public final void setTime(Date date) {
-
setTimeInMillis(());
-
}
这里date为null,就变成(),必然会报空指针异常;
由于空指针异常是运行时异常,编译时不会被检查出来,所以在使用SimpleDateFormat的format(Date date)方法时,请做非空判断,或异常处理。