code: public Object getObject(int idx) {
          if (idx < 0) {
              throw new IllegalArgumentException("Negative size: " + idx);
          }
          if (idx >= fields.size()) {
              return null;
          }
          return fields.get(idx);
      }
docs: Retrieves an element at a specific position.
  <p/>
  Note that the behavior of this method is different than compared to the
  {@link List#get(int)}. In our case, if the supplied index is greater than
  the number of elements in this tuple, we'll return a {@code null}.
  <p/>
  However we do throw a {@link IllegalArgumentException} in the case that the
  index is less than 0.
  
  @param idx the index into the fields
  @return the object at the specified position, or null if element is
  empty or the supplied position is greater than the size of this tuple.