取自本java 教程的下一个片段将第二个参数对象与第一个参数对象进行比较,而不是反之亦然。*hireDate() 方法返回一个 Date 对象,表示该特定员工的雇用日期。
import java.util.*;
public class EmpSort {
static final Comparator<Employee> SENIORITY_ORDER =
new Comparator<Employee>() {
public int compare(Employee e1, Employee e2) {
return e2.hireDate().compareTo(e1.hireDate());
}
};
这里是java教程解释:
请注意,比较器将其第二个参数的雇用日期传递给其第一个参数,而不是反之。原因是最近聘用的员工资历最低;按雇用日期的顺序排序将使列表以相反的资历顺序排列。
我仍然不明白为什么通过反转 e1 和 e2compareTo
应该可以解决问题。
有什么进一步的说明吗?
提前致谢。