package class9_Lab_ArrayOfGenerics; // Josiah Yoder, MSOE, 07 May 2015 /** * An alternative solution that allows using the inner class. * * From: http://stackoverflow.com/questions/8765211/how-do-i-get-an-inner-class-to-inherit-enclosing-class-generic-type * * @param Type of object held. */ public class TernarySearchTreeWithArray { protected static enum Index { PARENT, LOKID, EQKID, HIKID, ARRAY_SIZE; } protected class TSTNode { protected char splitchar; @SuppressWarnings("unchecked") protected TSTNode[] relatives = (TSTNode[]) new TSTNode[Index.ARRAY_SIZE.ordinal()]; private U data; protected TSTNode(char splitchar, TSTNode parent) { this.splitchar = splitchar; relatives[Index.PARENT.ordinal()] = parent; } } private TSTNode root; // When you use it, pass T as U public TernarySearchTreeWithArray() { root = new TSTNode<>(',', null); // When you use it, pass T as U } public static void main(String[] args) { new TernarySearchTreeWithArray(); } }