JavaでInteger同士の大小比較 <>を使用してはいけない
項目 | 内容 |
---|---|
言語 | Java |
バージョン | openjdk 17.0.4.1 2022-08-12 LTS |
Integer同士の比較はcompareTo()メソッドで行います。
Integer同士の大小比較を<>で行うと本来は構文エラーです。
試しにString型で置き換えて大小比較を行うとコンパイルエラーになります。オブジェクトに対して<や>を使用することはできません。
Integer同士でコンパイルエラーにならないのはオートボクシングされてint型に暗黙変換されるためです。
上手く動作したり動作しなかったりするので、正しくはcompareTo()メソッドを使用する必要があります。
public class Sample { public static void main(String[] args) { Integer i = 1000000000; // オートアンボクシング Integer j = 1000000000; // オートアンボクシング System.out.println(i >= j); // true System.out.println(i <= j); // true System.out.println(i == j); // false } }
参考サイト
【Java】Integer同士を==で比較してはいけない。だけど・・・ | 羽根帽子の太公望 __∧ノ_
JavaでInteger同士を==で比較すると、場合によっては比較できたりできなかったりします。実例を交えて解説します。
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント