public class StackTest { public static void main(String[] args) { Stack stack = new Stack(10); // Java automatically boxes the character or double into the wrapper stack.push('a'); stack.push('b'); stack.push(123.45); stack.push(456.78); // polymorphic call to wrapper toString Method System.out.println(stack.pop()); System.out.println(stack.pop()); System.out.println(stack.pop()); // Must cast to char, Java automatically unboxes the wrapped object char c = (Character)stack.pop(); System.out.println(c); } static class Stack { int top; Object[] data; public Stack(int size) { data = new Object[size]; top = -1; } public void push(Object o) { data[++top] = o; } public Object pop() { return data[top--]; } } }