簡體   English   中英

Java中不兼容的返回類型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM