我正在编组具有Set类型字段的对象。实现是未排序的,因此生成的XML元素的顺序是任意的,而且每次进行编组时我都会得到不同的顺序。
有没有办法告诉marshaller如何在编组过程中对字段内容进行排序?
答案 0 :(得分:0)
您可以利用SortedSet
。如果在实例上初始化Set
的实例,则JAXB将使用该实现而不是创建新实现:
package forum7686859;
import java.util.Set;
import java.util.TreeSet;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Root {
//private Set<String> children = new HashSet<String>();
private Set<String> children = new TreeSet<String>();
public Set<String> getChildren() {
return children;
}
public void setChildren(Set<String> children) {
this.children = children;
}
}