3
집합의 필드가있는 개체를 마샬링하고 있습니다. 구현은 정렬되지 않으므로 결과 XML 요소의 순서는 임의적입니다. 또한 마샬링 할 때마다 순서가 달라집니다.JAXB 집합의 강제 순서
marshaller에게 마샬링하는 동안 필드 내용을 정렬하는 방법을 알려주는 방법이 있습니까?
집합의 필드가있는 개체를 마샬링하고 있습니다. 구현은 정렬되지 않으므로 결과 XML 요소의 순서는 임의적입니다. 또한 마샬링 할 때마다 순서가 달라집니다.JAXB 집합의 강제 순서
marshaller에게 마샬링하는 동안 필드 내용을 정렬하는 방법을 알려주는 방법이 있습니까?
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;
}
}
가 아니, 내가 정말 원하는 것이 아니다. 내 컬렉션이 항상 정렬되고 싶지 않습니다. 분류되지 않은 세트는 자연 그대로입니다. XML 출력의 요소 순서가 동일한 컬렉션에 대해 동일하다는 것을 보장하기 만하면됩니다. – Vladimir