### Question:
ByteOption extends ValueOption<ByteOption> { @Override public void write(DataOutput out) throws IOException { if (isNull()) { out.writeBoolean(false); } else { out.writeBoolean(true); out.writeByte(value); } } ByteOption();  ByteOption(byte value); byte get(); byte or(byte alternate); @Deprecated ByteOption modify(byte newValue); @Override @Deprecated void copyFrom(ByteOption optionOrNull); @Override int hashCode(); @Override boolean equals(Object obj); @Override int compareTo(WritableRawComparable o); boolean has(int other); @Override String toString(); @Override void write(DataOutput out); @SuppressWarnings("deprecation") @Override void readFields(DataInput in); @SuppressWarnings("deprecation") @Override int restore(byte[] bytes, int offset, int limit); @Override int getSizeInBytes(byte[] buf, int offset); @Override int compareInBytes(byte[] b1, int o1, byte[] b2, int o2); static int getBytesLength(byte[] bytes, int offset, int length); static int compareBytes(
            byte[] b1, int s1, int l1,
            byte[] b2, int s2, int l2);  }### Answer:
@Test public void write() { ByteOption option = new ByteOption(); option.modify((byte) 100); ByteOption restored = restore(option); assertThat(restored.get(), is(option.get())); }