2017-09-19 48 views
0

我们如何必须将int包装整数与零值进行比较?我们可以使用整数时,int值可以为空(INT不会允许空):将可空整数与0比较

Integer x; 

两个选项扔显示java.lang.NullPointerException:

0 == x;x == 0;

所以,简单,我们如何比较可以或不可以的整数,是否为空?

+4

'Integer.valueOf(0).equals(x)的'或'X!= NULL && X == 0' – shmosel

+4

'Objects.equals(X,0)'。 –

回答

2

x是在你的类中的字段,所以当你没有使它引用任何Integer对象(Integer x = new Integer(7)例如)创建,编译器为它为你null的缺省值对象引用) 。看起来你有这样的:Integer x = null;

所以比较它只是使用由Integer包装类实现的equals()方法。

new Integer(0).equals(x) 
+0

你几乎不应该调用'Integer'构造函数。改用'Integer.valueOf()'。 – shmosel