public 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;
	}
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
jenetics/src/main/java/io/jenetics/internal/util/SerialIO.java