Несовместимый тип возврата в Java
У меня есть следующий метод: (с этого URL WSDL: http://services.aonaware.com/DictService/DictService.asmx?WSDL)
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[]
Любая помощь будет принята с благодарностью.
2 ответа
Вам нужно преобразовать список в массив, чтобы Arrays.deepToString() принял его: Arrays.deepToString(def.toArray())
Я вижу много путаницы.
Прежде всего, статический метод define
возвращает вам WordDefinition
не List<WordDefinition>
так линия
def = define(str)
должен дать вам ошибку компиляции.
Во всяком случае, если предположить, List<WordDefinition> def
на самом деле переменная у вас с контентом, либо вы используете Arrays.deepToString
ИЛИ вы перебираете список, а не оба.
Если вы хотите повторить, вы можете просто сделать:
for(WordDefinition wd: def){
System.out.println(wd);
}
или же
Arrays.deepToString(def.toArray());