2

次の例を検討してください。

@JsonIgnoreProperties(ignoreUnknown = true)
class ModelA {
  private ModelB modelB;
}

ModelBと などの 2 つのオーバーロードされたメソッドが導入されsetProperty(String)ていsetProperty(Object)ます。ObjectMapperこれは、「競合するセッター定義」についてのジャクソンの不平を混乱させます。

Caused by: java.lang.IllegalArgumentException: 
Conflicting setter definitions for property "property": ModelB#setProperty(1 params) vs ModelB#setProperty(1 params)

継承を使用できる場合は、この回答@JsonIgnoreで提案されているように使用できることを認識しています。また、最終的な解決策は、カスタム Jackson デシリアライザーを開発することであることも認識しています (ただし、私の場合は非常に複雑です)。しかし、コンポジションの使用が制限されている場合、これに対する回避策があるかどうか知りたいですか?

4

0 に答える 0