делая динамический @XmlElements - PullRequest
0 голосов
/ 06 сентября 2018

Документы для типа аннотации @XmlElements имеют следующий пример:

public class Foo {
    @XmlElements(
        @XmlElement(name="A", type=Integer.class),
        @XmlElement(name="B", type=Float.class)
     }
     public List items;
}

Это замечательно, когда у вас есть только несколько известных типов, которые должны быть в списке. Я ищу способ сделать его более динамичным, чтобы при добавлении новых элементов в системный класс Foo его не нужно было изменять.

Первое, что приходит на ум, - это использование некоторых пользовательских аннотаций. Давайте назовем его @XmlElementType, и у него есть атрибут типа, который будет применяться к элементам (Integer, Float и т. Д.). Конечно, это не может быть сделано с предопределенными типами, это будет применяться только к новым типам.

Тогда вариант аннотации @XmlElements будет применен к элементам List в классе Foo. У него будет атрибут для указания типа @XmlElementType, который он может содержать, возможно, пакет для сканирования POJO.

Итак, у меня два вопроса:

  1. Что-то подобное уже существует?
  2. Если нет, можно ли реализовать что-то подобное? Если да, то сейчас?

1 Ответ

0 голосов
/ 11 сентября 2018

Я думаю, вы можете использовать тип Object.class, а затем использовать XmlAnyElement . Если вы можете привести конкретный пример того, чего вы хотите достичь, тогда я смогу отредактировать ответ и привести конкретный пример.

...