Предположим, у меня есть этот класс:немаршалинг коллекции в JAXB
public class A {
private HashMap<String, B> map;
@XmlElement
private void setB(ArrayList<B> col) {
...
}
private ArrayList<B> getB() {
...
}
}
При попытке маршализацию XML-документа в этом классе с использованием JAXB я замечаю, что вместо вызова метода SETB() и отправить мне список B экземпляры JaxB фактически называет getB() и добавляет экземпляры B в возвращенный список. Зачем?
Причина, по которой я хочу, чтобы вызывающий вызов был вызван, состоит в том, что список на самом деле является лишь временным хранилищем, из которого я хочу построить поле карты, поэтому я решил сделать это в настройщике.
Спасибо.
+1 для указания способа, которым jaxb делает коллекции, но этот плагин не поможет. Это плагин для генератора кода XJC, m и не изменяет поведение среды JAXB. – skaffman
Я прочитал старую электронную почту, в которой утверждалось, что это поведение исправлено в JaxB 2.1. Я ожидал бы, что есть свойство, которое на JaxbContext.newInstance (classes, * properties *), которое управляет маршалингом, но я не могу его найти. – Justin