Я пытаюсь реализовать внутренний класс, имеющий универсальный параметризованный тип.
Вот краткая версия моего кода:
public class AVLTree<T extends Comparable<? super T>> implements Iterable<T> {
...
private class BinaryNode<T extends Comparable<? super T>> {
...
}
private class TreePreOrderIterator<E extends Comparable<? super E>> implements Iterator<E> {
...
}
}
Не работает. Eclipse / Java предупреждает меня, что параметр типа T
во внутреннем классе «скрывает» параметр суперкласса. Любые мысли о том, как я могу это исправить?
РЕДАКТИРОВАТЬ: я добавил другой внутренний класс, с которым у меня проблемы: TreePreOrderIterator
. Универсальный тип T
будет одинаковым для AVLTree
, BinaryNode
и TreePreOrderIterator
. Внутренние классы должны обращаться к полям в AVLTree.
EDIT2: Кроме того, Iterator
обращается к BinaryNode<T>
, что является конфликтом.
(Примечание: это часть более крупного проекта, который я делаю для класса. Если вам нужна какая-либо другая информация, пожалуйста, спросите.)