嵌套@JsonSubType的多态性,可能吗?

时间:2019-01-23 16:08:02

标签: java json

我正在尝试使用@JsonSubtype进行多态,在一个级别上可以正常工作,但是我不知道如何在多个级别上做到这一点。有可能吗?

这里是一个例子:

首先我有

@JsonSubTypes({
        @JsonSubTypes.Type(SteakRestaurant.class),
        @JsonSubTypes.Type(FastFoodRestaurant.class)
})

public interface Restaurants {

// some common methods...

FastFoodRestaurant看起来像这样

public class FastFoodRestaurant implements Restaurants{
...

然后我有这个:

@JsonTypeInfo(
        use = JsonTypeInfo.Id.NAME,
        property = "version",
        defaultImpl = FastFoodRestaurantsV1.class
)
@JsonSubTypes({
        @JsonSubTypes.Type(value = FastFoodRestaurantsV1.class, name = "v1"),
        @JsonSubTypes.Type(value = FastFoodRestaurantsV2.class, name = "v2"),
})
@JsonIgnoreProperties(ignoreUnknown = true)
public interface FastFoodRestaurantList {

    enum Version {

        V1, V2

    }

    @JsonIgnore
    Version getVersion();

}

我想做的(不知道是否可能)是:

通过FastFoodRestaurantList界面包含所有餐馆FastFoodRestaurant的列表。

有可能吗?知道怎么做吗?

0 个答案:

没有答案