Вы genearlly не использовать сеттер для списка полей в объектах JAXB.
Вместо этого вы используете getter для списка и maniuplate возвращенного списка.
Пример JAXB объекта:
class JaxbExample {
@XmlElement(name="stringList", required = true)
private List<String> stringList;
public List<String> getStringList() {
return stringList;
}
}
добавить три строки в stringList
:
JaxbExample someObject = ...;
// add three Strings to stringList
someObject.getStringList().add("foo");
someObject.getStringList().add("bar");
someObject.getStringList().add("baz");
// now the list contains 3 new strings and there was
// no need to use a setter.
набор StringList к существующему списку:
JaxbExample someObject = ...;
List<String> someList = ...;
// set someObject's stringList to someList
someObject.getStringList().addAll(someList);
Чтобы уточнить далее ...
Мы иногда генерируем наши классы Java JAXB из файлов схемы XML (файлы .XSD), используя XJC utility.
Когда сгенерированный класс содержит элемент списка, для Списка не создается метод setter.
Следующий комментарий появится выше поглотителе для каждого списка:
/**
* Gets the value of the stringList property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the stringList property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getStringList().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link String }
*
*
*/
Надеется, что комментарий делает лучше объяснить, чем я !!
Избиратель не используется, потому что нет необходимости. Вы можете просто манипулировать списком, возвращаемым установщиком. См. Ответ ниже ... – jahroy
@jahroy Я откат вашего редактирования, потому что я чувствовал, что вы слишком сильно изменили вопрос. Я не хочу знать, как конкретно работают списки - я хочу знать, почему мой подход не работает. – chama
Что не работает в вашем подходе? Я не предлагаю альтернативный подход, я просто пытаюсь описать, как использовать списки в объектах, которые создаются с помощью JAXB. Непонятно, о чем вы спрашиваете. Конечно, ваш метод с именем «_setMyObjects_» не вызывается. Это не сеттер для вашего списка: он принимает массив в качестве аргумента вместо списка!То, что я пытаюсь сделать, это то, что JAXB не использует сеттеры для списков. У моих сгенерированных объектов JAXB даже нет сеттеров для полей, которые являются списками. – jahroy