kafka中的java泛型反序列化

rjee0c15  于 2021-06-06  发布在  Kafka
关注(0)|答案(0)|浏览(344)

在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都无法转换为我的对象。有什么建议吗?谢谢你的帮助

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题