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