楽落人の備忘録

楽して生きていきたい。知識とか覚えておきたくない。

Integerクラス

久々にジャバジャバして失敗したのでメモ。

そもそもecliseでIntって書いたら怒られたのでIntegerクラス利用していたのだけど、if文での比較で想定通りに動作しなかった。

失敗例)

List<String> arr=["aa","bb"]; 

Integer test1=1;

Integer test2=2;

for(String str:arr){

    if(test1 == test2){

        System.out.println("等しい");

    }

    test1++;

}

リストでデータぶん回して特定ループ回数時に処理を実行したかったのだけど、if文の中の処理をしてくれない。。

なして?と思ってIntegerをintに書き直したら想定通りに動いた。。。。

以下が理由。

 

テックノート – javaのオブジェクト型(Integer)を==比較すると危険!

 

補足:

JavaのIntegerクラスについてのまとめ

 

何年目にしてこんな失敗しているのだろうか。。。恥ずかしい。

いやでも知らないだけだし。失敗生かせばいいんだし。

失敗しないと気付かないし!(前向きな言い訳)