我写了一些这样的代码:
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")
将返回什么? - 如何使用
result
检查null
?
如果您尝试将null
施放到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
}
您可以使用默认值:
Map map = new HashMap<String, Object> ();
map.put ("seven", new Integer(7));
Object o = map.getOrDefault ("seven", new Integer (0));