2011-06-30 95 views
0

我已经使用JAX-WS构建了一个SOAP服务,并且它返回了一些排序结果,这些结果基本上按客户认为美观的顺序排序。我的后台处理没有问题,并且结果始终以正确的顺序出现。现在由wsimport生成的客户端部分在接收到这些结果时正在使用ArrayLists,这些结果不能保证在迭代时保持顺序。有什么方法可以覆盖这个?或者我可以在模式中的SOAP方面做更好的事情,这将告诉任何客户端它需要保持订单? (因为我只是知道我将不得不为此做一个C#客户端)保留SOAP结果的排序顺序

tia !!

回答

3

当它收到这些结果时使用ArrayLists,这些结果不能保证在迭代时保持顺序。

这个假设来自哪里?

The java.util.List interface represents an ordered collection。集合中元素的顺序是至关重要的。在迭代时没有返回集合中元素的正确顺序的java.util.List的任何实现都将破坏接口的契约。

The Javadoc for the List.iterator()方法状态(重点煤矿):

返回适当序列在此列表中的元素的迭代器。

ArrayList返回的迭代器不违反这个。它以与底层数组相同的顺序向您返回元素。

+0

是的你说得对,谢谢! – mezmo