昨天被一个奇葩的错误耽误了不少进度,主要是因为HashMap的初始化问题。不像Python初始化字典那么简单,Java的HashMap初始化比较啰嗦。
Python的字典初始化:
score = {"english": 80, "math":90, "chinese": 88 }
在Java中就没那么简洁了:
public static HashMap<String, String> score = new HashMap<String, String>() {
{
put("english", "80");
put("math", "90");
put("chinese", "88");
// score.put("english", "80");
}
};
网上给出的注释掉的这种写法,其实是错误的。在JDK8的条件下,该种写法会抛出空指针错误,个人认为是score还没初始化,就直接引用导致的。
记下这个坑吧,不能完全信网上的资料。另外,Java有时候真挺啰嗦,感觉麻烦时,采用Python生成Java代码是一个不错的选择。