Как я препятствую тому, чтобы JAXB связал методы суперкласса @XmlRootElement при маршалинге?

Исправьте все эти распространенные ошибки JavaMail . Убедитесь, что вы используете JavaMail для Android . И посмотрите FAQ по JavaMail для , как отправить сообщение с вложением Например, см. Пример программы sendfile.java .

10
задан Matt 18 March 2009 в 20:44
поделиться

3 ответа

Согласно этому посту на StackOverflow: Как я могу игнорировать суперкласс?

В JAX-B невозможно игнорировать суперкласс без модификации суперкласса. Цитирую соответствующую часть того сообщения:

Update2: я нашел тему на java.net для аналогичной проблемы. Эта тема привела к запросу на улучшение, который был помечен как дубликат другой проблемы, которая привела к появлению аннотация @XmlTransient. Комментарии к этим сообщениям об ошибках заставляют меня что это невозможно в текущей спецификации.

6
ответ дан 3 December 2019 в 22:39
поделиться

Просто добавьте

@XmlAccessorType(XmlAccessType.NONE)

перед КАЖДЫМ суперобъявлением класса (и сам класс).

В Вашем случае:

@XmlAccessorType(XmlAccessType.NONE)
class NamedObject{
    [ ... ]
}

Помните, что это должно быть сделано действительно для каждого суперкласса, о нем часто забывают при контакте с огромными деревьями зависимостей класса.

Интерфейсам, конечно, не нужны никакие аннотации JAXB.

5
ответ дан 3 December 2019 в 22:39
поделиться

Я сталкиваюсь с той же самой проблемой. Мой суперкласс не обрабатывает аннотаций JAXB (он не имеет к), и я хотел бы, чтобы мой подкласс не включал свойства суперкласса при маршалинге.

Добавление XmlAccesorType на суперклассе не может быть решением, поскольку у меня нет способа изменить суперкласс.

Есть ли какое-либо другое решение?

1
ответ дан 3 December 2019 в 22:39
поделиться
Другие вопросы по тегам:

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