In my gRPC based Java service, I am creating a Bloom filter using Google Guava library. I want to send it to another service using Protocol Buffers as the serialization format. How can I best do that? I can perhaps convert it to byte array using following method, but seems inefficient. Is there a better way?
// Serialize BloomFilter to byte array
private static <T> byte[] bloomFilterToByteArray(BloomFilter<T> bloomFilter) {
try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream)) {
objectOutputStream.writeObject(bloomFilter);
return byteArrayOutputStream.toByteArray();
} catch (IOException e) {
e.printStackTrace();
return null;
}
}