[Java] Long型とlong型の比較メモ


Javaで社内システムを作ってるときに、Long型の値とlong型の値を「==」で一致判定しようとしたら一致しなくて詰まったのでメモ。まだまだ未熟なエンジニアなので許してください_m(-_-)m_

プリミティブ型の数値と参照型の数値をそのまま比較したいときは?

参照型のequalsメソッドを使いましょう。

compare.java
   Long num1 = 1L;
   long num2 = 1l;
   if(num1==num2) { //1
       System.out.println("true");
   } else {
       System.out.println("false");
   }

   if(num1.equals(num2)) { //2
       System.out.println("true");
   } else {
       System.out.println("false");
   }

「1」のような比較を行うと、必ずfalseになりますが、「2」のような比較を行えば、数値が合っていればtrueになります。

後書き

記念すべきQiita初投稿記事でした。
プリミティブ型と参照型はスクリプト言語しかやったことない人には馴染みがない概念だと思いますが(僕も最初そうでした)、しっかり理解しておくべきことなので、Java初心者の方は頑張って理解しましょう(何様)。
僕も初心者赤ちゃんエンジニアなので頑張ります。