2010-03-17 2 views
1

В моей программе на C# я хотел бы использовать метод Java Web Service, который отвечает java.Util.ArrayList. Я не знаю, как преобразовать Java ArrayList в C# ArrayList.Преобразование Java Arraylist return from Java WebService в C# Arraylist

Это Java коды

@WebMethod 
@WebResult(name = "GetLastMessages") 
@SuppressWarnings("unchecked") 
public ArrayList<Message> getLastMessages(@WebParam(name = "MessageCount")int count) { 
    .... 
      .... 
    return messages; 
} 

Это C# Коды

MessagesService.MessagesService service = new MessagesService.MessagesService(); 
System.Collections.ArrayList arr = (System.Collections.ArrayList)service.getLastMessages(10); 

я получил следующее сообщение об ошибке в C#

Cannot convert type 'WindowsFormsApplication1.MessagesService.arrayList' to 'System.Collections.ArrayList' 

Как я могу бросить эти Java ArrayList в C# ArrayList

ответ

1

Это определенно не класс Java, написанный с учетом взаимодействия Web-сервисов (и это не так хорошо от метода Java - он должен возвращать List, а не ArrayList). Если вы можете изменить его, попробуйте изменить его на массив (тип возврата: Сообщение []). Очень легко сделать, просто изменить обратку следующим образом:

return messages.toArray(new Message[0]); 

Я думаю, что просто приведет вас обратно к SO спрашивать, что делать с этим классом сообщений (я говорю об этом не было написано с помощью веб-службы совместимость в уме?), даже если предположить, что массив идет гладко (это может быть не так).

Если вы не можете изменить класс Java, вам, вероятно, очень не повезло, но вам нужно будет вызвать веб-службу и получить необработанный XML-файл и посмотреть, что вы можете сделать для его разбора, чтобы узнать, какие ваши варианты находятся.

0

ArrayList в Java и ArrayList на C# - это очень разные вещи, вам нужно разделить данные в формате, который может быть легко понят обеими сторонами, например. XML.

Смежные вопросы