Java Comparator syntax works, but why?
This question already has an answer here:
 SomeClass.PrioritizedPendingListComparator is a class.  You need an instance of it so you have to use new  
 When you define public static class the static means it doesn't implicitly have a reference to the outer class, but you still have to create it in the normal way.  
 One way to avoid new is to use an enum .  
public enum PrioritizedPendingListComparator implements Comparator<SomeClass> {
    INSTANCE;
    @Override
    public int compare(SomeClass o1, SomeClass o2) {
    ...
    }
later
 Collections.sort(pendingList, SomeClass.PrioritizedPendingListComparator.INSTANCE);
下一篇: Java比较器语法的作品,但为什么?
