Javaでは、注釈付きフィールドのタイプに応じて注釈の動作を変更する方法はありますか?
注釈の存在はコードによってテストされることになっていることを知っています。反対ではありません。しかし、ケースはかなり特殊です。これは、アノテーションのリストを収集する Jackson 2.0 « inside » アノテーションです。これを使用して、フィールド名 ( @JsonProperty
) とフィールドのシリアル化ポリシー ( @JsonSerialize
) を定義します。
シリアル化ポリシーは、注釈付きフィールドに適合させる必要があります。また、フレームワークについて話しているため、2 つの個別のアノテーションよりも 1 つの固有のアノテーションの方がはるかに優れています。
@Retention(RUNTIME)
@JacksonAnnotationsInside.
@JsonProperty("_id")
@JsonSerialize(using=IdSerializer.class)
@JsonDeserialize(using=IdDeserializer.class)
public @interface Id {}
場合によっては、シリアライザーを下げる必要があります。それがポイントです。次の例ではString
、デシリアライザーによって処理する必要がありますが、処理ObjectId
しないでください。_id
両方とも によって名前を変更する必要があります@JsonProperty
。
public class Car {
@Id String id
}
public class Bus {
@Id ObjectId id
}
手がかりはありますか?