如何通过多个字段比较对象
假设您有一些对象,它们有几个字段可以通过以下方式进行比较:
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()
那么最好的方法是什么呢?