无法检查 int 是否为空
2022-09-03 08:54:58
我正在尝试使用字典。每当我想检查字典中是否存在元素时,我都会这样做:
int value = results.get("aKeyThatMayOrMayNotBePresent");
if (value != null)
// ...
但是编译器说我无法将 an 与 .在这种情况下,检查的正确方法是什么?int
<nulltype>
null
我正在尝试使用字典。每当我想检查字典中是否存在元素时,我都会这样做:
int value = results.get("aKeyThatMayOrMayNotBePresent");
if (value != null)
// ...
但是编译器说我无法将 an 与 .在这种情况下,检查的正确方法是什么?int
<nulltype>
null
您正在将基元值 (int) 与 null 进行比较。由于基元不能为 null,因此应使用相应的对象,在本例中为 Integer。所以,你应该写
Integer value = results.get("aKeyThatMayOrMayNotBePresent");
您的空检查为时已晚。
int value = results.get("aKeyThatMayOrMayNotBePresent");
此行已将引用转换为基元 。如果 get 的返回值为 null,它将引发 NullPointerException。int
正确的方法是使用 代替 。Integer
int
Integer value = results.get("aKeyThatMayOrMayNotBePresent");
这样,值将不是基元类型,并且空检查有效。