2016-11-12 6 views
0

J'ai la méthode suivante: (à partir de cette URL WSDL: http://services.aonaware.com/DictService/DictService.asmx?WSDL )type de retour Incompatible en 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); 
} 

Il faut un mot d'un JTextField et renvoie une liste de ses définitions.

J'ai déclaré la liste suivante:

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

Je veux imprimer le résultat que je reçois de la méthode. Je fis donc la boucle suivante:

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

où:

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

L'erreur est d'obtenir est la suivante:

types incompatibles: Liste ne peut pas être converti en objet []

Toute aide serait grandement appréciée.

+0

Quelle ligne obtenez-vous l'erreur – root545

Répondre

0

Vous devez convertir la liste à un tableau pour Arrays.deepToString() pour l'accepter: Arrays.deepToString(def.toArray())

0

Je vois beaucoup de confusion.

Tout d'abord, la méthode statique define vous renvoie un WordDefinition, pas un List<WordDefinition>, donc la ligne

def = define(str) 

devrait vous donner une erreur de compilation.

Quoi qu'il en soit, en supposant que List<WordDefinition> def est réellement la variable que vous avez avec le contenu, soit vous utilisez Arrays.deepToString OU vous itérez sur la liste, pas les deux.

Si vous voulez itérer, vous pouvez simplement faire:

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

ou

Arrays.deepToString(def.toArray());