2014-12-14 1 views
1

Я хочу прочитать целое число (внутри элемента XML) в Семафор вместо int, эффективно вызывая Семафор (int theInteger). Проблема: у Semaphore нет конструктора по умолчанию. Если бы это был класс, который я написал, я мог либо создать частный конструктор no-arg, либо написать адаптер, но поскольку у меня нет доступа к Семафору - что я могу сделать?JAXB - адаптер для объекта библиотеки

ответ

1

Объект, который вы адаптируете с помощью XmlAdapter, не нуждается в конструкторе без искусства. Вы можете установить его следующим образом:

SemaphoreAdapter extends XmlAdapter<Integer, Semaphore> 

Тогда вы будете использовать @XmlJavaTypeAdapter аннотацию на свойстве типа Semaphore ссылаться на XmlAdapter.

+0

Перед тем, как прочитать свой ответ, я действительно нашел ответ в документации MOXy [здесь] (http://eclipse.org/eclipselink/documentation/2.5/moxy/advanced_concepts006.htm). Вы писали это? – Michael