Я пытаюсь реализовать внутренний класс, который имеет общий параметризованный тип.
Вот короткая версия моего кода:
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
во внутреннем классе "скрывает" параметр суперкласса. Любые мысли о том, как я могу это исправить?
EDIT: я добавил другой внутренний класс, с которым у меня возникают проблемы: TreePreOrderIterator
. Общий тип T
будет таким же для AVLTree
, BinaryNode
и TreePreOrderIterator
. Внутренним классам необходимо получить доступ к полям в AVLTree.
EDIT2: Кроме того, Iterator
обращается к BinaryNode<T>
, что является конфликтом.
(Примечание. Это часть более крупного проекта, который я выполняю для класса. Если какая-либо другая информация необходима, пожалуйста, спросите.)