Pila genérica con restricción de tipo

Java Medium generics

Tarea «Pila genérica con restricción de tipo»

Implemente una clase parametrizada GenericStack<T extends Number>, que representa una pila de números (Integer, Double, etc.). La clase debe contener los métodos push(T element), T pop(), T peek() y boolean isEmpty(). Internamente, use un array o ArrayList. En el método main, lea desde la entrada estándar una secuencia de líneas: la primera línea es el tipo de números (Integer o Double), la segunda línea es la cantidad de operaciones n, luego n líneas con operaciones: push <valor>, pop, peek. Para cada operación, muestre el resultado (para pop y peek — el valor, para push — 'ok'). Si la pila está vacía al hacer pop o peek, muestre 'error'.

Formato de entrada

La primera línea es el tipo de números (Integer o Double). La segunda línea es un número entero n (1 ≤ n ≤ 100). Luego n líneas, cada una contiene uno de los comandos: push <número>, pop, peek.

Formato de salida

Para cada comando, muestre el resultado (ok, número o error) en una línea separada.

Ejemplos

Ejemplo 1

ENTRADA
Double 4 push 3.14 peek pop pop
SALIDA
ok 3.14 3.14 error
main.java