2017-11-01 4 views
0

同じMQキューから2種類のメッセージを受信します。これら2つのメッセージの構造はまったく異なります。共通のフィールドはありません。私は両方のクラスに対応するPOJOを持っています。どちらのメッセージがどのPOJOに対応しているかをわかりやすくする方法は?次のように私は現在やっている何を同じメッセージチャネルに入ってくる2つの異なるメッセージタイプの解析

は次のとおりです。

receivedMessageClassA = objectMapper.readValue(payload, ClassA.class); 

チェック上記の構文解析が成功したか必須フィールドの一つがreceivedMessageClassAに存在しているか確認してください。

上記のチェックが失敗した場合、第二のクラスのために

receivedMessageClassB = objectMapper.readValue(payload, ClassB.class); 

を構文解析を行うしかし、このアプローチは、エラーが発生しやすくなり、私はそれに完全に満足していません。誰かがここで助けてもらえますか?

答えて

0

まあ、私は最善の方法を使用することであると考えていinstanceof

if (payload instanceof ClassA) 
    receivedMessageClassA = objectMapper.readValue(payload, ClassA.class); 
else 
    receivedMessageClassB = objectMapper.readValue(payload, ClassB.class); 
関連する問題