【发布时间】:2012-08-02 21:25:56
【问题描述】:
我一直在寻找一种方法来仅根据多个字段中的一个对对象列表进行排序(我最终只是自己问了这个问题),但在我的研究中,我遇到了这个答案:
https://stackoverflow.com/a/1421537/1549672
我对 java 还很陌生,这可能就是原因,但我不太了解最后一种方法:
public static Comparator<Person> getComparator(final PersonComparator... multipleOptions) {
return new Comparator<Person>() {
public int compare(Person o1, Person o2) {
for (PersonComparator option : multipleOptions) {
int result = option.compare(o1, o2);
if (result != 0) {
return result;
}
}
return 0;
}
};
}
有人可以解释一下它是如何工作的……它到底是做什么的? 谢谢!
【问题讨论】:
-
我会单步调试您的调试器中的代码。这将允许您查看每一行的作用。
-
在这种情况下实际上可能有点困难,因为代码执行相对复杂。除非您编写自己的代码来执行它,否则“比较”甚至可能不会被执行。
-
看看docs.oracle.com/javase/6/docs/api/java/lang/Enum.html#ordinal()我想这就是你要找的。span>
-
这段代码是否有一些你不理解的特定部分?