/**
 * Una caja con un type parameter T: guarda a lo más un valor de tipo T.
 * El compilador sabe qué tipo entra y qué tipo sale.
 */
public class Box<T> {
    private T content;          // null si la caja está vacía

    public void put(T content) {
        this.content = content;
    }

    public T get() {
        return content;
    }

    public boolean isEmpty() {
        return content == null;
    }
}
