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

Это метод compareTo класса, реализующего интерфейс Comparable (см. https://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html). Возвращаемое значение compareTo определено как 0, если объекты идентичны, < 0, если аргумент лексикографически больше, и > 0, если аргумент меньше.

Результат сравнения объекта Name, который у вас здесь, делегирован методу compareTo атрибута familyName. Это означает, что атрибут familyName текущего объекта Name сравнивается с атрибутом familyName аргумента. Вторая проверка compareTo выполняется только в том случае, если атрибуты familyName обоих экземпляров объекта Name идентичны. Если это так, вместо этого сравнивается firstName.