Предположим, вы пишете статическую функцию в Java для сортировки массива, подобно Arrays.sort()
. Проблема с Arrays.sort()
заключается в том, что он получает массив объекта и выбрасывает ClassCastException
, если его элементы не реализуют Comparable
.
Итак, вы хотите, чтобы ваша функция получала в качестве аргумента массив подтипа Comparable
. Что-то вроде этого может работать:
static <T extends Comparable> void sort(T[] array);
Проблема с этой сигнатурой заключается в том, что вы все равно можете передать массив Comparables с целыми и строками, что приведет к RuntimeException
.
Итак, как вы можете создать функцию, которая получит только массив, элементы которого реализуют Comparable и имеют одинаковый тип (например, Integer, String и т.д.?)