2017-09-19 7 views
0

どうすればとすると、intラッパーIntegerをゼロ値と比較する必要がありますか? int型の値はnullにすることができたときに我々は(intはnullを可能にしない)整数を使用することができます。nullable整数を0と比較します

Integer x; 

両方のオプションは、java.lang.NullPointerExceptionがスロー:、

0 == x;またはx == 0;

ので、シンプルにできるかどうか、nullであるかどうかを比較する方法は?

+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

関連する問題