@Override
  public Object @NotNull [] toArray() {
    T theElement = this.theElement;
    if (theElement == null) {
      return super.toArray();
    }
    return new Object[]{theElement};
  }
@Override
  public Object @NotNull [] toArray()