I am using a Java Comparator to sort an ArrayList of SomeClass
items. It works just fine, no problems. What I'm curious about is the syntax. Given:
public static class PrioritizedPendingListComparator implements Comparator<SomeClass> {
@Override
public int compare(SomeClass o1, SomeClass o2) {
...
}
And then, some time later,
private ArrayList<SomeClass> pendingList = new ArrayList<>();
... // fill it up with entries
Collections.sort(pendingList, new SomeClass.PrioritizedPendingListComparator());
I use new SomeClass.PrioritizedPendingListComparator()
as the second argument to Collections.sort()
. My comparator, PrioritizedPendingListComparator
, is static
so I don't expect to have to use new
.
- Why can I not just use
SomeClass.PrioritizedPendingListComparator
e.g. why do I need thenew
? - How would I know this from reading the documentation?