Если у вас есть целочисленные массивы int[]
, вы не можете передать их в Arrays#sort(long[])
(и наоборот), потому что они разных типов.Таким образом, вам нужны сигнатуры методов для всех типов примитивных массивов.Кроме того, нет общего супертипа, который можно было бы использовать в качестве типа параметра.
Встречный вопрос: Если вы не перегружаете метод #sort
, какие типы параметров вы бы предложили использовать для #sort
метод, позволяющий передавать типы сортировки int[]
и long[]
?
// Обновление после вашего вопроса в комментариях относительно кастинга:
Нет, вы не можете разыграть от int[]
до long[]
или наоборот.Следующий код не компилируется:
int[] myIntArray = {1, 2, 3};
Arrays.sort((long[]) myIntArray); // COMPILE ERROR
Что вы можете сделать, это следующее (требуется Java 8):
int[] myIntArray = {1, 2, 3};
long[] myCastedArray = Arrays.stream(myIntArray).asLongStream().toArray();
Arrays.sort(myCastedArray); // #sort(long[])
Кстати, хотя вы заявили, что ответ Андрея Тобилко вам не поможет, вы должны попытаться понять, что он говорит вам.Я также думаю, что вы обязательно поймете разницу между int/long
(примитив) и int[]/long[]
(массив примитивов).