перегрузка метода с ArrayList<Integer>() на ArrayList<String>()

148
12 апреля 2022, 02:20

В общем решал задачу:

Считать по ключу с файла строки или целые числа, отсортировать и записать в другой файл.

Стал писать и решил я сделать метод сортировки ArrayList в аргументах.

Ну и решил я его значит перегрузить и один сделать sort(ArrayList<Integer> array), а второй sort(ArrayList<String> array).

Ну и тут то Intellij IDEA меня и обломала с сообщением:

fix method 'sort' parameters with bounded wildcards

Как понимаю компилятор видит, что в обоих случаях есть ArrayList, а тип хранимых в нем значений его не волнует.

Но информации не нашел, а как спросить у гугла и не знаю. Он меня завел не в те дебри.

Может кто объяснить почему все же так происходит или может ресурс какой, где про это написано по подробнее.

Буду благодарен за любые ответы.

Answer 1

В Java принята модель дженериков со стиранием типов. Т.е. конкретный тип существует только на этапе написания кода. А при компиляции все дженерик-типы стираются и остается только абстрактный Object.

В итоге ваши объявления

sort(ArrayList<Integer> array)
sort(ArrayList<String> array)

преобразовываются в

sort(ArrayList array)
sort(ArrayList array)

и компилятор вам честно сообщает, что у вас объявлено два идентичных метода

READ ALSO
Как сделать так, чтобы выделенную строку в TableView можно было менять?

Как сделать так, чтобы выделенную строку в TableView можно было менять?

Начал изучать javafx для создания GUIДо этого учил swing В swing можно создать такую таблицу:

209
Сохранить файл в кодировке utf-8 java

Сохранить файл в кодировке utf-8 java

Мне нужно сохранить файл в форматеtsv чтобы у него была кодировка в utf-8, насколько это реально сделать? Делало в том что у меня есть строка в которой...

83
Работа метода Scanner.nextInt()

Работа метода Scanner.nextInt()

Почему появляется сообщение о возникновении NumberFormatException? Если использовать val initialMoney = nextLine()toInt(), то всё ок!? То есть приходится сначала вводить...

141
Автозапуск приложения

Автозапуск приложения

Столкнулся со стандартной проблемой: запуск приложения сразу после включения телефонаВсе советы либо устарели, либо не работают

223