Как присоединить преобразователь XStream только для определенного элемента?

Легко установить преобразователь для определенного типа (http://x-stream.github.io/javadoc/com/thoughtworks/xstream/XStream.html дает пример):

xstream.registerConverter(new SqlTimestampConverter());
xstream.registerConverter(new DynamicProxyConverter());

Я хотел бы зарегистрировать преобразователь, но на различных именах элементов. Интерфейс Converter не предлагает название элемента.

Например: дата должна быть преобразована в подробную строку, если имя элемента (имя свойства) будет в но короткий, если в . Как я могу добавить различные преобразователи на основе имени свойства? Что-то как xstream.registerConverter (Тип класса класса, propertyname, преобразователь) не существовало, но будет хорошо.

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

BTW: Я мог использовать аннотацию @XStreamConverter (XXX.class), но я не хочу использовать аннотации. Я хочу свой боб, свободный от любой аннотации.

9
задан 5 revs, 2 users 96% 8 September 2016 в 13:01
поделиться

1 ответ

Используйте registerLocalConverter () вместо registerConverter () .

xstream.registerLocalConverter( MyClazz.class, "property", new MyConverter() );
6
ответ дан 4 December 2019 в 23:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: