1 回答
TA贡献1797条经验 获得超4个赞
它应该是:
public static final Map<String, Month> months = new HashMap<String, Month>() {{
put("Jan", Month.January);
put("Feb", Month.February);
put("Mar", Month.March);
put("Apr", Month.April);
put("Jun", Month.June);
put("Jul", Month.July);
put("Aug", Month.August);
put("Sep", Month.September);
put("Oct", Month.October);
put("Nov", Month.November);
put("Dec", Month.December);
}};
months.put()导致NullPointerException,因为执行语句时static变量months仍然存在。nullput
作为替代方案,避免创建匿名类实例,而是编写:
public static final Map<String, Month> months = new HashMap<String, Month>();
static {
months.put("Jan", Month.January);
months.put("Feb", Month.February);
months.put("Mar", Month.March);
months.put("Apr", Month.April);
months.put("Jun", Month.June);
months.put("Jul", Month.July);
months.put("Aug", Month.August);
months.put("Sep", Month.September);
months.put("Oct", Month.October);
months.put("Nov", Month.November);
months.put("Dec", Month.December);
}
添加回答
举报
