Java 将LinkedHashMap转换为泛型类时发生ClassCastException
考虑以下类别:Java 将LinkedHashMap转换为泛型类时发生ClassCastException,java,spring-boot,generics,spring-kafka,linkedhashmap,Java,Spring Boot,Generics,Spring Kafka,Linkedhashmap,考虑以下类别: public class MsgReceiver<MSG> extends AbstractMsgReceiver<MSG> implements MsgReceiver<MSG> { @KafkaListener( // necessary properties ) public void receiveMessage(@Headers Map<String, Object> headers, @Payload Consume
public class MsgReceiver<MSG> extends AbstractMsgReceiver<MSG> implements
MsgReceiver<MSG> {
@KafkaListener( // necessary properties )
public void receiveMessage(@Headers Map<String, Object> headers, @Payload ConsumerRecord<String,
Object> payload) {
super.receiveMessage(headers,(MSG) (payload.value())); // line foobar
}
公共类MsgReceiver扩展了AbstractMsgReceiver实现
MsgReceiver{
@KafkaListener(//必要属性)
public void receiveMessage(@Headers映射头,@Payload consumer记录有效负载){
super.receiveMessage(headers,(MSG)(payload.value());//行foobar
}
payload.value()
属于LinkedHashMap
类型,当我使用这个类时,MSG可以是我的任何自定义POJO类。当我从LinkedMashMap
转换到foobar行上的我的POJO类时,我会得到ClassCastException
。我如何解决这个问题呢?尝试使用jackson mapper,或者我想说的任何一个mapper。我已经使用jackson mapper很多年了卡夫卡队列侦听器,工作完美
查找详细信息有效负载。值()返回迭代器对象。这可能是类型转换中的问题。请检查您的POJO类。为什么您希望这样做?我不希望这样做,我尝试使用ObjectMapper,但即使这样也会引发错误。ObjectMapper与此有何关系?您有一个包含条目的列表。您无法将列表转换为某些POJO。列表的元素是什么特朗特?