code: protected <T extends Writable> T readFields(byte[] bytes, T writable) throws IOException {
      Preconditions.checkNotNull(bytes, "Input bytes are null");
      Preconditions.checkNotNull(writable, "Writable is null");
      buf.reset(bytes, bytes.length);
      writable.readFields(buf);
      return writable;
    }
docs: Deserializes raw bytes into a Writable instance, returning that instance. This implementation
  relies on derived classes to initialize {@link #writable} before this method is called.
  
  @param bytes serialized Writable data.
  @param writable Writable instance into which data should be stored.
  @return {@code writable}.
  @throws IllegalArgumentException if either argument is {@code null}.
  @throws IOException