JAXB жалуется, что класс X «... не имеет конструктора без аргументов по умолчанию.»@XmlJavaTypeAdapter на абстрактном классе?
класса X в моем случае это один из десятков автоматически сгенерированных, конечных классов, действительно, не имеют конструктора default-no-arg. Также происходит расширение класса , который я могу изменить, если захочу. Я думал о размещении аннотации @XmlJavaTypeAdapter
на абстрактном классе, но это не работает, и я не уверен, что это даже имеет смысл. Какое лучшее решение или обходное решение для этого?
EDIT: Просто, чтобы быть чистым. Я не могу изменить сгенерированные классы.
Я понимаю, что это необходимо JAXB, но я не могу просто добавить его к автоматически созданным классам. В любом случае это нежелательно, потому что это означает, что класс можно построить, не передавая «что-то» (отвечая на ваш ответ в качестве примера). Хотя я мог бы видеть, могу ли я иметь классы, созданные с помощью частного конструктора no-arg, - это обходной путь, но я надеялся, что JAXB может предложить что-то само по себе. – chrisjleu
Если вы не можете создать конструктор no-args, то я не уверен, что можно использовать JAXB, как именно вы скажете, какой конструктор использовать и какие аргументы должны пройти для каждого экземпляра? Возможно, фундаментальное переосмысление дизайна необходимо, потому что это кажется странной ситуацией? – nablex
Это действительно странная и неудобная ситуация. Но иногда, к сожалению, приходится работать с устаревшим кодом, который не может быть легко изменен, может быть недоступен для вас или быть слишком дорогостоящим для рефакторинга ... На самом деле это вопрос для эксперта JAXB, который знает о трюке или двух. – chrisjleu