//: generics/GenericCast.java // ©2015 MindView LLC: see Copyright.txt class FixedSizeStack { private int index = 0; private Object[] storage; public FixedSizeStack(int size) { storage = new Object[size]; } public void push(T item) { storage[index++] = item; } @SuppressWarnings("unchecked") public T pop() { return (T)storage[--index]; } } public class GenericCast { public static final int SIZE = 10; public static void main(String[] args) { FixedSizeStack strings = new FixedSizeStack<>(SIZE); for(String s : "A B C D E F G H I J".split(" ")) strings.push(s); for(int i = 0; i < SIZE; i++) { String s = strings.pop(); System.out.print(s + " "); } } } /* Output: J I H G F E D C B A *///:~