public int compareTo(Name other) {
int result = this.familyName.compareTo(other.familyName);
if (result == 0) {
result = this.firstName.compareTo(other.firstName);
}
return result;
}
我不能理解代碼的肉,它如何用來比較名稱。請解釋這種比較方法
public int compareTo(Name other) {
int result = this.familyName.compareTo(other.familyName);
if (result == 0) {
result = this.firstName.compareTo(other.firstName);
}
return result;
}
我不能理解代碼的肉,它如何用來比較名稱。請解釋這種比較方法
如果姓氏相同,則比較名字。
本質上是「按姓氏分組」。
這是實施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
。
它委託給字符串的'compareTo'方法。 – Carcigenicate
哪一部分不清楚? – shmosel
在業務邏輯的上下文中,委託給字符串類,如果姓氏相同,則按名字比較。 – varra