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