Javaでのequalsメソッド

2813 ワード

Indicates whether some other object is "equal to"this one.
The equals method implements an equivalence relation on non-null object references:
  • It is reflexive: for any non-null reference value x , x.equals(x) should return true .
  • It is symmetric: for any non-null reference values x and y , x.equals(y) should return true if and only if y.equals(x) returns true .
  • It is transitive: for any non-null reference values x , y , and z , if x.equals(y) returns true and y.equals(z) returns true , then x.equals(z) should return true .
  • It is consistent: for any non-null reference values x and y , multiple invocations of x.equals(y) consistently return true or consistently return false , provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x , x.equals(null) should return false .

  • The equals method for class Object implements the most discriminating possible equivalence relation on objects; that is, for any non-null reference values x and y , this method returns true if and only if x and y refer to the same object ( x == y has the value true ).
    Note that it is generally necessary to override the hashCode method whenever this method is overridden, so as to maintain the general contract for the hashCode method, which states that equal objects must have equal hash codes.
    Parameters:
    obj the reference object with which to compare.
    Returns: true if this object is the same as the obj argument; false otherwise.
    単一の参照オブジェクト間の等しいに適合するため、equalまたはsameではなく単一の3人称equalsが用いられる.
    Javaの説明ドキュメントから見ると、この方法は主にあるオブジェクトと現在のオブジェクトが等しいかどうかを判断するために用いられ、この点では同じではなく等しいことに注意する.
    equalsは2つの非空オブジェクトの等しい関係判断を実現し、オブジェクトが非空であることに注意した.
    この方法は自己反転性(任意の非空オブジェクトx equals x),対称性(任意の非空オブジェクトx equals y,yも一定equals x,),伝達性(任意の非空オブジェクトx equals y,y equals z,z equals y),持続性(複数呼び出しx equals y戻り結果は同じであるべき)を有する.
    非空性(任意の非空オブジェクトx equals nullはfalseを返す).
    ≪パラメータ|Parameters|oem_src≫:比較が必要な参照オブジェクト
    戻り値:booleanタイプ、本オブジェクトとパラメータオブジェクトが等しい場合はtrueを返します.そうでない場合はfalseを返します.
    注記:nullオブジェクトには非静的メソッドと属性はありません.nullを使用する前にjava.lang.NullPointerExceptionが現れると判断していません.