code: static <T> T readNullable(
  		final Reader<? extends T> reader,
  		final DataInput in
  	)
  		throws IOException
  	{
  		T value = null;
  		if (in.readBoolean()) {
  			value = reader.read(in);
  		}
  
  		return value;
  	}
docs: Reads a possible {@code null} value from the given data input.
  
  @param reader the object reader
  @param in the data input
  @param <T> the object type
  @return the read object
  @throws NullPointerException if one of the given arguments is {@code null}
  @throws IOException if an I/O error occurs