我写了一些这样的代码:
Map<String, Object> map;
-- some code --
int result = (int) map.get("some_integer");
如果名为some_integer
的密钥没有值,则map.get("some_integer")
将返回null
。然后,它被投射为int
,不能null
。
我的问题是:
(int) map.get("some_integer")
将返回什么?null
检查result
?答案 0 :(得分:4)
如果您尝试将int
投射到NullPointerException
,您将获得Integer
。
如果要对其进行空值检查,可以使用Object
或Integer r = (Integer) map.get("some_integer");
if (r==null) {
// whatever you want to do in this case
} else {
int result = r;
// whatever you want to do with the result
}
变量。
R
答案 1 :(得分:0)
您可以使用默认值:
Map map = new HashMap<String, Object> ();
map.put ("seven", new Integer(7));
Object o = map.getOrDefault ("seven", new Integer (0));