我正在使用桌面应用程序,用户输入一个单词,然后显示其定义。为此,我使用的是Web服务:DictService。 我的代码运行正常,我唯一的问题是它不返回定义。
这是我的代码:
“jTextField1”是用户写单词的地方。
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String str = jTextField1.getText();
System.out.println(define(str));
}
方法定义是:
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);
}
例如,当我输入单词“test”时,输出为:“com.aonaware.services.webservices.WordDefinition@f48725b”
我真的不知道如何解决这个问题,非常感谢任何帮助。谢谢。
编辑:
该方法输出定义列表,而i只输出一个字符串。 所以我创建了一个列表来存储所有定义。我迭代它输出它们。
以下是创建列表并输出它的代码:
String str = jTextField1.getText();
List<WordDefinition> definitions = new ArrayList<WordDefinition>(Arrays.asList(define(str)));
for (int i=0; i< definitions.size(); i++){
System.out.println(Arrays.deepToString(definitions.get(i))); //i get an error here
}
现在我得到的错误是:“不兼容的类型:WordDefinition无法转换为Object []”
我该如何解决?
答案 0 :(得分:0)
类WordDefinition显然没有一个很好的toString()方法。您必须明确访问返回值的成员:
System.out.println(define(str).getSomeValue());
由于我不知道你的框架的内部,我不能给出更多的建议。