Документация Collections#sort
гласит, что она принимает List<T>
в качестве параметра, где T
определяется как:
<T extends Comparable<? super T>>
Следовательно, вы должны иметь возможность чтобы определить аналогичный тип generi c в вашем методе sortArrays
:
public <T extends Comparable<? super T>> void sortArrays(List<T>... arr) {
for (List<T> list : arr) {
Collections.sort(list);
}
}
Это решение будет работать, если ваша цель - передать списки одного типа. Для передачи списков различных типов см. Ниже.
Существует решение hacky , которое использует raw types , позволяющее передавать списки различных типов в Ваш sortArrays
метод:
public static void main(String[] args) {
List<Integer> integerList = new ArrayList<>(List.of(3, 2, 1));
List<String> stringList = new ArrayList<>(List.of("6", "5", "4"));
sortArrays(integerList, stringList);
System.out.println(integerList);
System.out.println(stringList);
}
public static void sortArrays(List<? extends Comparable>... arr) {
for (List<? extends Comparable> list : arr) {
Collections.sort(list);
}
}
Вывод приведенного выше фрагмента:
[1, 2, 3]
[4, 5, 6]