### Question:
ContextualSerializableCoder extends SerializableCoder<T> { public static <T extends Serializable> SerializableCoder<T> of(final Class<T> type, final String plugin) { return new ContextualSerializableCoder<>(type, TypeDescriptor.of(type), plugin); } protected  ContextualSerializableCoder(); private  ContextualSerializableCoder(final Class<T> type, final TypeDescriptor<T> typeDescriptor,
            final String plugin); static SerializableCoder<T> of(final Class<T> type, final String plugin); @Override void encode(final T value, final OutputStream outStream); @Override T decode(final InputStream inStream); @Override boolean equals(final Object other); @Override int hashCode(); @Override String toString();  }### Answer:
@Test void roundTrip() { final Ser ser = SerializableUtils .ensureSerializableByCoder(ContextualSerializableCoder.of(Ser.class, "test"), new Ser(5), "test"); assertEquals(5, ser.value); }