У меня есть абстрактный класс, который использует
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "Type", visible = true)
и
@JsonSubTypes({
@JsonSubTypes.Type(value = ONE.class, name = "ONE"),
@JsonSubTypes.Type(value = TWO.class, name = "TWO")})
abstract class ZERO {....}
чтобы создать правильный класс.
это прекрасно работает, однако теперь у меня есть новый класс (назовем его ТРИ), который является своего рода заполнителем для другого класса.
так скажем, я получаю что-то вроде этого:
class THREE {
String ID;
}
У меня также есть карта этого класса для некоторых конкретных классов, так что этот идентификатор фактически говорит о том, что он должен взять класс из карты
Map<String, ZERO> map
Я хотел сделать что-то подобное
class THREE_FACTORY{
@JsonCreator
public static ZERO create(@JsonProperty("ID") id){
return map.get(id);
}
}
но с подтипами это не очень хорошо.
У вас есть способ достичь этого? используя то, что я сказал, или другие методы, о которых я не думал?
ключевое значение здесь заключается в том, что список класса ZERO вообще не должен содержать три класса, а заменять их, я не хочу некоторый класс-обертку ...