Вот подпись Collections.sort:
public static <T extends Comparable<? super T>> void sort(List<T> list)
A
должна реализовать Comparable для этого метода.
Вы пытаетесь передать BinOrder
этому методу, когда BinOrder
имеет тип ArrayList<A>
, но поскольку A
не реализует Comparable<A>
, он не соответствует сигнатуре метода.
Либо изменение A
для реализации Comparable, либо используйте метод sort
, который принимает компаратор:
public static <T> void sort(List<T> list, Comparator<? super T> c)