从null检查int cast

时间:2018-02-05 12:15:19

标签: java casting null

我写了一些这样的代码:

Map<String, Object> map;
-- some code --
int result = (int) map.get("some_integer");

如果名为some_integer的密钥没有值,则map.get("some_integer")将返回null。然后,它被投射为int,不能null

我的问题是:

  1. (int) map.get("some_integer")将返回什么?
  2. 如何使用null检查result

2 个答案:

答案 0 :(得分:4)

如果您尝试将int投射到NullPointerException,您将获得Integer

如果要对其进行空值检查,可以使用ObjectInteger 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));