public class WildCardNeedDemo {
  public static void main(String[] args ) {
    GenericStack<Integer> intStack = new GenericStack<>();
    intStack.push(1); // Liczba 1 jest opakowywana w typ Integer (autoboxing)
    intStack.push(2);
    intStack.push(-2);

    System.out.print("Wartość maksymalna: " + max(intStack));
  }

  /** Znajduje wartość maksymalną na stosie liczb */
  public static double max(GenericStack<Number> stack) {
    double max = stack.pop().doubleValue(); // Inicjowanie wartości maksymalnej

    while (!stack.isEmpty()) {
      double value = stack.pop().doubleValue();
      if (value > max)
        max = value;
    }

    return max;
  }
}
