RangeError (RangeError (index): Invalid value: Valid value range is empty: -1)

RangeError (RangeError (index): Invalid value: Valid value range is empty: -1)

class Stack<T> {
  final List<T> _items = [];
//_items declared as Private

  void push(T item) => _items.add(item);

  T pop() => _items.removeLast();

  @override
  String toString() => _items.toString();
}

void main() {
  final stack = Stack<int>();
  stack.push(1);
  stack.push(2);
  print(stack.pop());
  print(stack.pop());

  final names = Stack<String>();
  names.push('Adam');
  names.push('Rose');

  print(stack.pop());
}

使用 'stack.pop()' 方法的打印命令不打印名称值,就像它使用 int 值一样,我该如何解决这个问题?

你需要做 names.pop() 而不是 stack.pop()