Sorting 集合的JAXB力序

Sorting 集合的JAXB力序,sorting,collections,jaxb,marshalling,Sorting,Collections,Jaxb,Marshalling,我正在封送具有Set类型字段的对象。实现是未排序的,因此生成的XML元素的顺序是任意的,而且我每次进行封送处理时都会得到不同的顺序 有没有办法告诉封送员在封送过程中如何对字段内容进行排序?您可以利用已排序数据集。如果在您的实例上初始化Set的实例,那么JAXB将使用该实现,而不是创建一个新的实现: package forum7686859; import java.util.Set; import java.util.TreeSet; import javax.xml.bind.annota

我正在封送具有Set类型字段的对象。实现是未排序的,因此生成的XML元素的顺序是任意的,而且我每次进行封送处理时都会得到不同的顺序


有没有办法告诉封送员在封送过程中如何对字段内容进行排序?

您可以利用
已排序数据集
。如果在您的实例上初始化
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;
    }

}
用于UM7686859的包;
导入java.util.Set;
导入java.util.TreeSet;
导入javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
公共类根{
//private Set children=new HashSet();
private Set children=new TreeSet();
公共集getChildren(){
返回儿童;
}
公共无效集合子对象(集合子对象){
这个。孩子=孩子;
}
}

不,这不是我真正想要的。我不希望我的收藏总是被排序,它们本质上是未排序的集合。我所需要的只是确保同一集合的XML输出中元素的顺序相同。