我有以下方法:(来自此WSDL URL: 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 []
非常感谢任何帮助。
答案 0 :(得分:0)
您需要将列表转换为Arrays.deepToString()的数组以接受它:Arrays.deepToString(def.toArray())
答案 1 :(得分: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());