为什么在 org.apache.kafka.common.serialization 中的 Serializer<> 接口重写的 serialize() 方法中有一个 "topic" 参数
Why is there a "topic" parameter in the overridden serialize() method from Serializer<> interface in org.apache.kafka.common.serialization
我观察到 Serializer<> 接口的 serialize() 方法的实现有两个参数:
字节[]序列化(字符串主题,T数据)
但是方法体根本不需要字符串主题参数。那它为什么存在呢?
包 org.apache.kafka.common.serialization 中提供了示例实现:
@Override
public byte[] serialize(String topic, String data) {
try {
if (data == null)
return null;
else
return data.getBytes(encoding);
} catch (UnsupportedEncodingException e) {
throw new SerializationException("Error when serializing string to byte[] due to unsupported encoding " + encoding);
}
}
在这个具体实现中,确实没有任何用法。
然而,这个参数可能被不同的/高级的序列化程序使用。
我观察到 Serializer<> 接口的 serialize() 方法的实现有两个参数:
字节[]序列化(字符串主题,T数据)
但是方法体根本不需要字符串主题参数。那它为什么存在呢?
包 org.apache.kafka.common.serialization 中提供了示例实现:
@Override
public byte[] serialize(String topic, String data) {
try {
if (data == null)
return null;
else
return data.getBytes(encoding);
} catch (UnsupportedEncodingException e) {
throw new SerializationException("Error when serializing string to byte[] due to unsupported encoding " + encoding);
}
}
在这个具体实现中,确实没有任何用法。 然而,这个参数可能被不同的/高级的序列化程序使用。