当使用 wsimport 从 WSDL 生成客户端代码时,我得到了很多 ArrayOf*** 类。我想确保我得到 String[] 而不是 ArrayOfString。
需要做哪些外部定制来实现这一点?
到目前为止,我已经通过在实用程序方法中使用反射将 ArrayOfXXX 对象修改为 XXX[] 来解决问题。
我不确定这是否是您要问的,但如果您在 xml 响应中看到这些,则可能是在滥用 JAX-WS 生成的 ObjectFactory 类中的方法。
比如下面两行代码
factory.createArrayOfNameListItem(factory.createArrayOfNameListItem());
factory.createMyDataItemNames(arrayOfNameListItem);
产生相同类型的对象:
JAXBElement<ArrayOfNameListItem> objects
然而
factory.createArrayOfNameListItem(factory.createArrayOfNameListItem());
序列化/呈现为:
<ArrayOfNameListItem>
<Names>
<NameListItem>
<FirstName>
Homer
</FirstName>
<LastName>
Simpson
</LastName>
</NameListItem>
</Names>
</ArrayOfNameListItem>
和
factory.createMyDataItemNames(arrayOfNameListItem);
序列化/呈现为:
<Names>
<NameListItem>
<FirstName>
Homer
</FirstName>
<LastName>
Simpson
</LastName>
</NameListItem>
</Names>
希望这可以帮助某人。