Задать вопрос
zolt85
@zolt85
Программист

Как работает наследование в классах для сериализации xml JAXB?

Здравствуйте.
Подскажите как работает наследование в классах для сериализации xml JAXB.

Т.е. у меня есть класс MySuperXml:
@XmlRootElement(name = "super-xml")
@XmlSeeAlso(OtherSuperXml.class)
public class MySuperXml {
     private List<Long> numbers;
 }


У него есть потомок OtherSuperXml:
public class OtherSuperXml extends MySuperXml {
     private List<String> names;
 }


При маппинге я получаю пустой список numbers хотя в xml физически они есть. Как сделать маппинг родительских полей (если я правильно понимаю задачу)?
  • Вопрос задан
  • 4107 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Java-разработчик с нуля
    12 месяцев
    Далее
  • Академия Эдюсон
    Java-разработчик: тариф Базовый
    8 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Java-разработчик + ИИ
    9 месяцев
    Далее
Решения вопроса 1
Вероятно, они просто добавились в names. Не хотите всё-таки добавить аннотации для numbers и names? Я вот даже не знаю, как это будет представлено в XML без них.

Например, вот так можно сделать:
@XmlRootElement(name = "super-xml")
@XmlSeeAlso(OtherSuperXml.class)
public class MySuperXml {
     @XmlElement(name = "number")
     private List<Long> numbers;
}
@XmlRootElement(name = "other-super-xml")
public class OtherSuperXml extends MySuperXml {
    @XmlElement(name = "name")
    private List<String> names;
}

Вообще, тяжко что-то отвечать на выдуманном примере. Вы же явно другую схему XML используете...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Казань
от 75 000 ₽
ИТРУМ Ростов-на-Дону
от 75 000 ₽
Яндекс Москва
от 180 000 до 350 000 ₽