code: @Override
    @SuppressWarnings("unchecked")
    public D readRecord(@Deprecated D reuse) throws DataRecordException, IOException {
      K key = this.recordReader.createKey();
      V value = this.recordReader.createValue();
      if (this.recordReader.next(key, value)) {
        return this.readKeys ? (D) key : (D) value;
      }
      return null;
    }
docs: {@inheritDoc}.
  
  This method will throw a {@link ClassCastException} if type {@link #<D>} is not compatible
  with type {@link #<K>} if keys are supposed to be read, or if it is not compatible with type
  {@link #<V>} if values are supposed to be read.