JavaでInteger同士の大小比較 <>を使用してはいけない

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同士を==で比較すると、場合によっては比較できたりできなかったりします。実例を交えて解説します。

コメント

タイトルとURLをコピーしました