在kafka中,我有两个用于序列化和反序列化的类。序列化工作正常,但我有反序列化的问题。
我找到了很多解决办法,但都不管用。
具有泛型类t的反序列化程序
public class DeserializerU<T> implements Deserializer<T> {
@Override
public void configure(Map map, boolean bln) {
}
@Override
public void close() {
}
@Override
public T deserialize(String string, byte[] bytes) {
ObjectMapper mapper = new ObjectMapper();
T object = null;
try {
object = mapper.readValue(bytes, new TypeReference<T>() {});
} catch (Exception e) {
e.printStackTrace();
}
return object;
}
序列化程序
public class MyObjectSerializer implements Serializer {
@Override
public void configure(Map map, boolean bln) {
}
@Override
public byte[] serialize(String string, Object t) {
byte[] retVal = null;
ObjectMapper objectMapper = new ObjectMapper();
try {
retVal = objectMapper.writeValueAsString(t).getBytes();
} catch (Exception e) {
e.printStackTrace();
}
return retVal;
}
@Override
public void close() {
}
属性集反序列化程序
Properties props = new Properties();
props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, new DeserializerU<MyOwnObject>().getClass());
如果我将“typerefence(){}”替换为特定类型,那么反序列化程序可以工作,但我需要对许多对象使用反序列化程序。我也尝试了convertvalue而不是readvalue,但是所有返回的linkedhashmap都无法转换为我的对象。有什么建议吗?谢谢你的帮助
暂无答案!
目前还没有任何答案,快来回答吧!