我们将从同一个MQ队列接收两种类型的消息。这两条消息的结构完全不同,没有共同的领域。我对这两个课程都有相应的POJO。如何巧妙地识别哪个消息对应哪个POJO?
我目前正在做的事情如下:
receivedMessageClassA = objectMapper.readValue(payload, ClassA.class);
检查上面的解析是否成功或检查receiveMessageClassA中是否存在必填字段之一。
如果上述检查失败,请进行第二类解析
receivedMessageClassB = objectMapper.readValue(payload, ClassB.class);
然而,这种方法容易出错,我对它并不完全满意。有人可以帮忙吗?
答案 0 :(得分:0)
嗯,我认为最好的方法是使用instanceof
:
if (payload instanceof ClassA)
receivedMessageClassA = objectMapper.readValue(payload, ClassA.class);
else
receivedMessageClassB = objectMapper.readValue(payload, ClassB.class);