2016-11-22 87 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

在業務邏輯的上下文中,委託給字符串類,如果姓氏相同,則按名字比較。 – varra

回答

0

如果姓氏相同,則比較名字。

本質上是「按姓氏分組」。

0

這是實施Comparable(見https://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html)接口的類的compareTo方法。如果對象相同,則將compareTo的返回值定義爲0;如果參數按字典順序排列,則返回值爲< 0;如果參數較少,則返回> 0

您在此處對象Name的比較結果被授予familyName屬性的compareTo方法。這意味着將當前Name對象的familyName屬性與參數的familyName屬性進行比較。第二個compareTo檢查僅在Name對象實例的familyName屬性相同時才執行。如果是這種情況,則比較firstName