by <Item>
он говорит: -
Bound mismatch: The type Item is not a valid substitute for the bounded parameter <T extends
Comparable<? super T>> of the type ExpandableArrayList<T>
ExpandableArrayList<Item> items = new ExpandableArrayList<Item> ();
Это мои заголовки:
public interface ListInterface <T extends Comparable <? super T>>
public class ExpandableArrayList<T extends Comparable<?super T>> extends Item {
public class Item implements Comparable
Я не могу понять, что мне нужно точно изменить. Каждый раз, когда я что-то меняю в одном заголовке, появляются другие ошибки. Я использую тип compareTo (Object obj).
Класс Item
реализует необработанную форму интерфейса Comparable
. Вам нужно, чтобы он реализовал общую форму, объявив параметр типа для самого Item
. Затем ExpandableArrayList
может реализовать общую форму Item
.
public class Item<T extends Comparable <? super T>> implements Comparable<T>
а также
public ExpandableArrayList<T extends Comparable<?super T>> extends Item<T>
Это устранит проблемы компиляции из-за заголовков.
Но непонятно, почему ExpandableArrayList
должен подклассировать Item
. Он должен содержать Item
s; это не проходит тест "is-a". ExpandableArrayList
не должен распространять Item
вообще.