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);
}
添加回答
舉報