Я пытаюсь создать универсальный класс с именем "OrderedList", который использует массив универсальных типов для хранения определенного типа с использованием предопределенной сортировки типов.У меня проблемы с тем, что должно показаться простой операцией, и я не понимаю, почему.Вот мой код.
public OrderedList() {
list = (T[]) new Object[100];
size = 0;
}
public <T extends Comparable<T>> void add(T o) {
if (size == list.length) resize();
list[size] = o;
for (int i = 0; i < size; i++) {
o.compareTo((T) list[i]);
}
size++;
}
private void resize() {
int newSize = (int) (1.5 * (double) list.length);
T[] newArray = (T[]) new Object[newSize];
for (int i = 0; i < size; i++) {
newArray[i] = list[i];
}
list = newArray;
}
Ошибка, которую я получаю со второй строкой в методе добавления, "list [size] = o".Это дает мне сообщение об ошибке «Несовместимые типы. Обязательно: T. Найдено: T.»Кроме того, всякий раз, когда я беру экземпляр <T extends Comparable<T>>
, эта ошибка исчезает, но затем я не могу сравнить два объекта, которые пытаюсь отсортировать в общем массиве.
Может ли кто-нибудь мне помочь?Я действительно смущен этим.Любая помощь приветствуется.