昨天被一個(gè)奇葩的錯(cuò)誤耽誤了不少進(jìn)度,主要是因?yàn)镠ashMap的初始化問題崇摄。不像Python初始化字典那么簡(jiǎn)單擎值,Java的HashMap初始化比較啰嗦。
Python的字典初始化:
score = {"english": 80, "math":90, "chinese": 88 }
在Java中就沒那么簡(jiǎn)潔了:
public static HashMap<String, String> score = new HashMap<String, String>() {
{
put("english", "80");
put("math", "90");
put("chinese", "88");
// score.put("english", "80");
}
};
網(wǎng)上給出的注釋掉的這種寫法逐抑,其實(shí)是錯(cuò)誤的鸠儿。在JDK8的條件下,該種寫法會(huì)拋出空指針錯(cuò)誤厕氨,個(gè)人認(rèn)為是score還沒初始化进每,就直接引用導(dǎo)致的。
記下這個(gè)坑吧命斧,不能完全信網(wǎng)上的資料田晚。另外,Java有時(shí)候真挺啰嗦国葬,感覺麻煩時(shí)贤徒,采用Python生成Java代碼是一個(gè)不錯(cuò)的選擇。