Estoy intentando implementar una clase interna que tenga un tipo parametrizado genérico.¿Cómo uso los tipos genéricos paramertizados en una clase interna?
Aquí es una versión corta de mi código:
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> {
...
}
}
No funciona. Eclipse/Java me está dando una advertencia de que el parámetro tipo T
en la clase interna está 'ocultando' el parámetro de la superclase. ¿Alguna idea sobre cómo puedo solucionar esto?
EDIT: Agregué la otra clase interna con la que estoy teniendo problemas: TreePreOrderIterator
. El tipo genérico T
será el mismo para AVLTree
, BinaryNode
y TreePreOrderIterator
. Las clases internas necesitan acceder a los campos en AVLTree.
EDIT2: Además, el Iterator
tiene acceso a BinaryNode<T>
, lo cual es un conflicto.
. (Nota: Esto es parte del proyecto más grande que estoy haciendo para una clase Si se necesita cualquier otra información, por favor pregunte.)
¿Puedes editar tu pregunta para incluir cómo se usa el tipo genérico de BinaryNode? Por ejemplo, ¿BinaryNode está parametrizado por el mismo tipo que AVLTree? – Carl
Acaba de editarse. ¿Responde esto a tu pregunta? –