public static <T> void writeNullable(
		final T value,
		final Writer<? super T> writer,
		final DataOutput out
	)
		throws IOException
	{
		out.writeBoolean(value != null);
		if (value != null) {
			writer.write(value, out);
		}
	}
Write the given, possible {@code null}, {@code value} to the data output
using the given {@code writer}.

@param value the, possible {@code null}, value to write
@param writer the object writer
@param out the data output
@param <T> the object type
@throws NullPointerException if the {@code writer} or data output is
        {@code null}
@throws IOException if an I/O error occurs
jenetics/src/main/java/io/jenetics/internal/util/SerialIO.java