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)を==比較すると危険!
補足:
何年目にしてこんな失敗しているのだろうか。。。恥ずかしい。
いやでも知らないだけだし。失敗生かせばいいんだし。
失敗しないと気付かないし!(前向きな言い訳)