Как правильно реализовать методы для объектов, которые реализуют Comparable в ArrayList в Java?

Итак, для проекта мне нужно отсортировать слова в алфавитном порядке, инкапсулированные в классе Word, который реализует Comparable. Экземпляры Word должны быть отсортированы в ArrayList из отдельного статического класса, содержащего алгоритм. Я создал стандартный алгоритм сортировки выбором, который воздействует на экземпляры объектов, реализующих интерфейс Comparable, но в моем основном классе он выдает ошибку всякий раз, когда я пытаюсь передать ArrayList‹ Word >. Я заметил, что если я изменю тип на ArrayList‹ Comparable >, то это сработает, но я чувствую, что это не самое лучшее соглашение, поскольку оно будет содержать только объекты Word. Я делаю что-то не так, и если да, то что я могу сделать, чтобы это исправить?

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

Объявление и создание экземпляра ArrayList:

private static ArrayList<Word> words;
words = new ArrayList<Word>();

Рассматриваемая строка, которая выдает ошибку:

ObjectALSelectionSort.selectionSort(words);

Заголовок для класса Word:

public class Word implements Comparable<Word>

Заголовок для метода selectionSort():

public static void selectionSort(ArrayList<Comparable> list)

Я предполагаю, что меня действительно смущает то, почему я не могу передать ArrayList объектов, которые реализуют Comparable, в метод, который действует на Comparables.


person zebra14420    schedule 10.02.2018    source источник
comment
Попробуйте использовать универсальный.   -  person user202729    schedule 10.02.2018
comment
Что ты имеешь в виду?   -  person zebra14420    schedule 10.02.2018
comment
... цель дублирования не слишком хороша, это ArrayList не массив. изменить Хорошо, теперь лучше продублировать цель.   -  person user202729    schedule 10.02.2018
comment
Re OP: прочитайте второй обман. Если вы по-прежнему не можете понять, спросите еще раз, указав конкретную проблему.   -  person user202729    schedule 10.02.2018