2016-11-12 3 views
0

У меня есть следующий метод: (из этого WSDL URL: http://services.aonaware.com/DictService/DictService.asmx?WSDL )Несовместимые возвращаемый тип в Java

private static WordDefinition define(java.lang.String word) { 
    com.aonaware.services.webservices.DictService service = new com.aonaware.services.webservices.DictService(); 
    com.aonaware.services.webservices.DictServiceSoap port = service.getDictServiceSoap(); 

    return port.define(word); 
} 

Он берет слово из JTextField и возвращает список его определений.

Я объявил следующий список:

List<WordDefinition> def = new ArrayList<WordDefinition>(); 

Я хочу, чтобы распечатать результат я получаю от этого метода. Так что я сделал следующий цикл:

for (int i=0; i< def.size(); i++){ 
     System.out.println(Arrays.deepToString(def)); 
    } 

где:

String str = jTextField1.getText(); 
    def = define(str); 

Ошибка получаете следующие:

Несовместимые типы: Список не может быть преобразован в Object []

Любая помощь будет принята с благодарностью.

+0

Какой линии вы получаете сообщение об ошибке – root545

ответ

0

Вы должны преобразовать список в массив для Arrays.deepToString(), чтобы принять его: Arrays.deepToString(def.toArray())

0

Я вижу много путаницы.

Прежде всего, статический метод define возвращает вам WordDefinition, а не List<WordDefinition>, поэтому линия

def = define(str) 

должен дать вам ошибку компиляции.

В любом случае, если List<WordDefinition> def на самом деле является переменной, имеющейся у вас с контентом, либо вы используете Arrays.deepToString ИЛИ вы перебираете список, а не оба.

Если вы хотите перебрать, вы можете просто сделать:

for(WordDefinition wd: def){ 
    System.out.println(wd); 
} 

или

Arrays.deepToString(def.toArray()); 
Смежные вопросы