Обобщённый стек с ограничением по типу

Java Средний generics

Задача «Обобщённый стек с ограничением по типу»

Реализуйте параметризованный класс GenericStack<T extends Number>, который представляет стек чисел (Integer, Double и т.д.). Класс должен содержать методы push(T element), T pop(), T peek() и boolean isEmpty(). Внутри используйте массив или ArrayList. В методе main прочитайте из стандартного ввода последовательность строк: первая строка — тип чисел (Integer или Double), вторая строка — количество операций n, далее n строк с операциями: push <значение>, pop, peek. Для каждой операции выведите результат (для pop и peek — значение, для push — 'ok'). Если стек пуст при pop или peek, выведите 'error'.

Формат ввода

Первая строка — тип чисел (Integer или Double). Вторая строка — целое число n (1 ≤ n ≤ 100). Затем n строк, каждая из которых содержит одну из команд: push <число>, pop, peek.

Формат вывода

Для каждой команды выведите результат (ok, число или error) на отдельной строке.

Примеры

Пример 1

ВВОД
Double 4 push 3.14 peek pop pop
ВЫВОД
ok 3.14 3.14 error
main.java