huf*_*uff 1 java static initialization exception
现在是早上5点,我有点睡着了,所以可能就是这样(我对Java也相对较新).但我不明白为什么这段代码会生成Null Exception.那时应该初始化地图,不应该吗?
private static final Map<String, Integer> CONDS_MAP =
Collections.unmodifiableMap
(
new HashMap<String, Integer>()
{{
put("null", 0);
put("false", 0);
put("true", 1);
put("numElems.lt", 2);
put("NELT", 2);
put("numElems.gt", 3);
put("NEGT", 3);
}}
);
private int getCodeInt(Object code)
{
if (code.getClass() == String.class)
{
return CONDS_MAP.get((String)code); // Null Exception here
}
else
// (... etc etc)
}
Run Code Online (Sandbox Code Playgroud)
谢谢!对不起它太琐碎了......
这很可能是因为尝试取消从非现有密钥返回的null.
return CONDS_MAP.get((String)code);
Run Code Online (Sandbox Code Playgroud)
是相同的
return CONDS_MAP.get(code).intValue();
Run Code Online (Sandbox Code Playgroud)
intValue如果Map返回null,那最后一个将失败.