我正在为Java应用程序使用以WCF编写的SOAP服务,并且我的服务之一的参数类型为int[]。在Java中添加服务时,出于序列化的目的,此int[]会转换为称为ArrayOfInt的类型。当我声明这样的类型时,它没有任何要附加的方法。因此,我尝试使用以下命令将List<Integer>强制转换为该类型:

List<Integer> Items = new ArrayList();
//Appending some integers to the list and checking if it has values
// Then
com.microsoft.schemas._2003._10.serialization.arrays.ArrayOfint Ai = (com.microsoft.schemas._2003._10.serialization.arrays.ArrayOfint) Items;
org.datacontract.schemas._2004._07.inventorymanwcf.ArrayOfReceiptModel R = man.getBasicHttpBindingIManagement().sell(Ai, Login.Username);


然后代码导致错误:

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.util.ArrayList cannot be cast to com.microsoft.schemas._2003._10.serialization.arrays.ArrayOfint


我的问题是如何处理该类型,如何将列表转换为ArrayOfInt

最佳答案

如果您引用类似this之类的内容,则很明显,您无法单独创建数组。但是,您可以覆盖它:new ArrayOfint(){ @Override public List<Integer> getInt() { return Arrays.asList(insertIntarrayHere);}}new ArrayOfint(){ @Override public List<Integer> getInt() { return insertListHere;}}

09-26 02:49