我正在尝试使用@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
的列表。
有可能吗?知道怎么做吗?