假设你有一些对象,它们有几个字段可以比较:
public class Person {
private String firstName;
private String lastName;
private String age;
/* Constructors */
/* Methods */
}
所以在这个例子中,当你问if:
a.compareTo(b) > 0
你可能会问a的姓是不是在b的姓之前,或者a的年龄是不是比b大,等等……
在不增加不必要的混乱或开销的情况下,在这些类型的对象之间进行多重比较的最干净的方法是什么?
comparable接口只允许通过一个字段进行比较 在我看来,添加大量的比较方法(如compareByFirstName(), compareByAge()等)是混乱的。
那么最好的解决办法是什么呢?