i == 0がNullPointerException

こんにちは、さるまりんです。

Javaの小ネタ、え!?と思ったので残しておきます。

タイトルの事象です。
iIntegerクラスの変数。
これをi == 0とした時にNullPointerExceptionが発生しました。

これiがnullだと比較できずにエラーとなるのです。
こんなコードです。

Integer i = null;

// 色々やって

if (i == 0) {
  // iが0の時の処理・・・
}

ちゃんと

if (i != null && i == 0) {
  // iが0の時の処理・・・
}

としてあげないといけないようです。

なぜ?としばらく悩んでしまいました。

これエラーなしで比較させて欲しいところだけどそうもいかなそうです。

inullでないことをちゃんとチェックしてから比較するように注意します。

NullPointerException、ちゃんとチェックしないとこれが発生してきます。
今までで一番みたJavaのExceptionだと思います。

nullチェック、とっても大事!

読んでくださってありがとうございました。

それではまた!