Я использую Java 6.
Мне не удается заставить мой внутренний класс использовать тот же общий класс, что и его класс-класс. В настоящее время я
public class TernarySearchTree < T > {
...
protected class TSTNode < T > {
// index values for accessing relatives array
protected static final int PARENT = 0, LOKID = 1, EQKID = 2, HIKID = 3;
protected char splitchar;
protected TSTNode < T > [] relatives;
private T data;
protected TSTNode(char splitchar, TSTNode < T > parent) {
this.splitchar = splitchar;
relatives = new TSTNode[4];
relatives[PARENT] = parent;
}
}
}
Сейчас я получаю предупреждение
Параметр типа T скрывает тип T
Если я удалю параметр типа из внутреннего класса (т.е. удаляю строку <T>
из строки protected class TSTNode<T>
), я получаю ошибку компиляции в строке relatives = new TSTNode[4]
.
Как я могу сделать все правильно?