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