[英]Incompatible return type in Java
我有以下方法:(從此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 []
任何幫助將不勝感激。
您需要將列表轉換為Arrays.deepToString()才能接受的數組: Arrays.deepToString(def.toArray())
我看到很多困惑。
首先,靜態方法define
返回一個WordDefinition
,而不是List<WordDefinition>
,因此該行
def = define(str)
應該給你一個編譯錯誤。
無論如何,假設List<WordDefinition> def
實際上是您所擁有的內容變量,或者您使用Arrays.deepToString
或對List進行迭代,而不是同時對兩者進行迭代。
如果要迭代,可以執行以下操作:
for(WordDefinition wd: def){
System.out.println(wd);
}
要么
Arrays.deepToString(def.toArray());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.