Сериализация универсального типа с Джексоном и @JsonTypeInfo - PullRequest
1 голос
/ 31 октября 2019

У меня есть следующий класс:

@JsonTypeInfo(
    use = JsonTypeInfo.Id.NAME,
    include = JsonTypeInfo.As.PROPERTY,
    property = "type"
)
@JsonSubTypes({
    @JsonSubTypes.Type(value = CardOne.class, name = "CARD_ONE")
})
public abstract class Card {
    String type;

    // Getters & Setters
}

public class CardOne extends Card {
  String foo;

  // Getters & Setters
}

И следующая строка JSON не будет сериализовать в него никаких проблем.

{
  "type": "CARD_ONE",
  "foo": "bar"
}

Как мне сделать эту работу, если я вместо этого хочуиспользовать композицию с универсальным типом? Я хочу что-то вроде этого:

public class Card<T> {
    String type;
    T cardProperties();

   // Getters & Setters
}

public class CardOneProperties {
  String foo;

  // Getters & Setters
}

1 Ответ

1 голос
/ 01 ноября 2019

Из-за стирания типа в java байт-код не имеет информации о параметризованном типе карты. Вы можете попробовать решение, указанное здесь. Он иллюстрирует, как вы бы сериализовали объект List параметризованного типа.

https://stackoverflow.com/a/6852184/9814390

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...