JAXB Java to XML: как не печатать элементы примитивного типа по умолчанию
-
22-07-2019 - |
Вопрос
Первая попытка использовать этот классный сайт - после поиска в течение 2 часов: Итак, у меня есть Java Bean (который я могу только аннотировать, но не изменять), и мне нужно сопоставить его с XML, используя JAXB. Я хотел бы, чтобы типы примитивов не печатались, если они содержат язык по умолчанию или пользовательские значения по умолчанию. Р>
Как уже говорилось, я не могу изменить Java-бин и поэтому изменить типы примитивов на их аналоги Object Wrappers.
Как ты это делаешь лучше всего?
Пример бина:
class Foo {
public String name;
// -1 is user defined default, to indicate field is not set.
public long someIdx=-1;
// ...
}
Foo f = new Foo();
f.name = "Duke";
для этого экземпляра я хотел бы получить следующий вывод:
<foo><name>Duke</name></foo>
Решение
Вы можете использовать JAXB XmlAdapters. Доступно с JAXB 2.0 (JDK 6.0)
Используя адаптер, вы оставляете bean-компонент отдельно и комментируете / меняете совершенно другой класс. Это не должно быть проблемой в вашем случае.