1

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
}

手がかりはありますか?

4

0 に答える 0