私は実行時にどのサブクラスを解決するかをデシリアライザに伝えるプロパティタイプをとる頻度クラスを持っています。デシリアライズ中にポリモーフィックなクラスのJavaコードで@JsonTypeInfoで定義されたプロパティを取得する方法は?
@JsonTypeInfo(use = Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "type")
@JsonSubTypes({
@Type(value = FrequencyIncidence.class, name= "INCIDENCE"),
@Type(value = FrequencyRange.class, name="RANGE"),
})
public abstract class Frequency extends Audit {
private FrequencyType frequencyType;
public FrequencyType getFrequencyType() {
return frequencyType;
}
public void setFrequencyType(FrequencyType frequencyType) {
this.frequencyType = frequencyType;
}
私のJavaコードでプロパティタイプにアクセスする方法はありますか?私はJavaクラスで別のフィールドのfrequencyTypeを定義する必要はありませんか? 今、私は、javaコードのサブクラスを決定し、javaサービスクラスのデータベースにデータを移入するためにfrequencyTypeフィールドが必要です。私の周波数のjsonはこのように見えます。
{ "周波数":{ "タイプ": "発生率について"、 "frequencyType": "発生率について"}}
タイプがJSONデシリアライザとfrequencyTypeにメタデータ情報を提供するために使用されていますどのサブクラス情報を送信するかを決定するために使用されます。 2つではなく1つのプロパティに集約できますか?