package it.cavallium.filequeue; import java.io.ByteArrayOutputStream; import java.io.DataOutput; import java.io.DataOutputStream; import java.io.IOException; public interface Serializer { default byte[] serialize(T data) throws IOException { try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) { try (DataOutputStream daos = new DataOutputStream(baos)) { serialize(data, daos); return baos.toByteArray(); } } } default void serialize(T data, DataOutput output) throws IOException { output.write(serialize(data)); } }