public void sort(Comparator<P> comparator) { List<P> positions = getPositions(); @SuppressWarnings({"SuspiciousToArrayCall", "unchecked"}) P[] sorted = (P[]) positions.toArray(new BaseNavigationPosition[positions.size()]); Arrays.sort(sorted, comparator); //noinspection unchecked order(asList(sorted)); }