Java7のObjects.equalsで2つのオブジェクトを比較する

Java7のObjects.equalsで2つのオブジェクトを比較する

Java7からObjectsクラスが使えます。

Objects.equals(a,b)でaとbを比較します。

同じならtrue,違うならfalseを返します。

このメソッドはnullを気にせずに比較することができるため大変便利です。

以前は以下のように比較していたと思います。

String a = "1";
if (a != null && a.equals(b)) {
  // 処理
}

もしくは定数を先に持っていき、equalsで比較していたと思います。

Objects.equalsを使えばnullを考慮せずに比較することができます。

package jp.confrage;

import java.math.BigDecimal;
import java.util.Objects;

public class Test1{
  public static void main(String[] args) {
    BigDecimal bd1 = new BigDecimal("10");
    BigDecimal bd2 = new BigDecimal("10");
    String a = "1";
    String b = "1";
    System.out.println(Objects.equals(null, null));
    System.out.println(Objects.equals(a, b));
    System.out.println(Objects.equals(bd1, bd2));
  }
}

結果は以下のようになります。

true
true
true

Objects.equalsでは型も考慮してくれます。

String a = "1";
BigDecimal b = BigDecimal.ONE;
Objects.equals(a,b);// →falseとなります

コメント

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