2016-11-22 9 views
-2
public int compareTo(Name other) { 
    int result = this.familyName.compareTo(other.familyName); 

    if (result == 0) { 
     result = this.firstName.compareTo(other.firstName); 
    } 

    return result; 
} 

私はコードの内容、名前の比較方法を理解できません。この比較方法を説明してください。

+0

これは、文字列の 'compareTo'メソッドに委譲しています。 – Carcigenicate

+4

どの部分が不明ですか? – shmosel

+0

ビジネスロジックのコンテキストで、ファミリ名が同じで、firstnamesで比較されている場合は、文字列クラスに委譲します。 – varra

答えて

0

ファミリ名が同じ場合は、ファーストネームを比較します。

"ファミリ名"で本質的にグループ化します。

0

これは、Comparablehttps://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html参照)インターフェイスを実装するクラスのcompareToメソッドです。 compareToの戻り値は、オブジェクトが同一の場合は0、引数が辞書的に大きい場合は< 0、引数が小さい場合は> 0と定義されています。

Nameオブジェクトの比較の結果は、familyName属性のメソッドに委譲されています。つまり、現在のNameオブジェクトのfamilyName属性が、引数のfamilyName属性と比較されます。 2番目のcompareToチェックは、両方のオブジェクトのfamilyName属性が一致する場合にのみ実行されます。その場合、代わりにfirstNameが比較されます。

関連する問題