@NotNull
  @Contract(pure = true)
  public <T> T selectNotNull(T @NotNull [] array) {
    assert array.length == 3;
    return array[myIndex];
  }
@NotNull
  @Contract(pure = true)
  public <T> T selectNotNull(T @NotNull [] array)