Sto provando ad implementare una classe interna che ha un tipo parametrico generico.Come utilizzare i tipi generici parametrizzati in una classe interna?
Ecco una versione breve del mio codice:
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> {
...
}
}
Non funziona. Eclipse/Java mi avvisa che il parametro tipo T
sulla classe interna sta "nascondendo" il parametro della super classe. Qualche idea su come posso risolvere questo problema?
MODIFICA: ho aggiunto l'altra classe interna che sto avendo problemi con: TreePreOrderIterator
. Il tipo generico T
sarà lo stesso per AVLTree
, BinaryNode
e TreePreOrderIterator
. Le classi interne devono accedere ai campi in AVLTree.
EDIT2: Inoltre, lo Iterator
accede a BinaryNode<T>
, che è un conflitto.
(Nota:. Questo è parte del più ampio progetto che sto facendo per una classe Se è necessaria qualsiasi altra informazione, si prega di chiedere.)
è possibile modificare la domanda per includere l'utilizzo del tipo generico di BinaryNode? ad esempio, il BinaryNode è parametrizzato dallo stesso tipo di AVLTree? – Carl
Appena modificato. Questo risponde alla tua domanda? –