Предположим, у вас есть несколько объектов, у которых есть несколько полей, с которыми они могут сравниваться:
public class Person {
private String firstName;
private String lastName;
private String age;
/* Constructors */
/* Methods */
}
Так что в этом примере, когда вы спрашиваете:
a.compareTo(b) > 0
возможно, вы спрашиваете, стоит ли фамилия a перед буквой b, или если a старше b и т. Д. *
Каков самый чистый способ включить множественное сравнение между этими типами объектов без добавления ненужных помех или накладных расходов?
java.lang.Comparable
интерфейс позволяет сравнивать только по одному полю
- Добавление многочисленных методов сравнения (т. Е.
compareByFirstName()
, compareByAge()
и т. Д.), На мой взгляд, загромождено.
Так, как лучше всего это сделать?