无法使用括号,Web服务示例显示对象的结果

时间:2010-08-26 18:45:54

标签: java web-services arrays

我在eclipse中创建了一个JAX-WS客户端,它将与用VB.net编写的Web服务进行通信。我已经成功地完成了这项工作。

我的一个Web服务方法将返回类型为KitchenItems []

的对象

KitchenItems有各种各样的厨房属性的get / set方法。但是,在使用KitchenItems []

时,我无法访问这些方法

括号是否将对象转换为数组?如何访问KitchenItems中的get方法?我有一个自动生成的测试类,它执行以下操作以提取结果:

KitchenItem[] kitchenItem= soap.getKitchenItemsByLoginId(kitchenId);
List list = Arrays.asList(kitchenItem.);
String result = list.toString();

理想情况下,我想使用该对象,而不是转换为字符串。以上不会让我将数组转换为列表,因为它会抛出错误:

Type mismatch: cannot convert from List<KitchenItem> to List

有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:1)

变量类型KitchenItem[]或变量名称kitchenItem []上的方括号表示此变量是数组。

使用方括号运算符访问数组的元素,其中第一个元素作为kitchenItem[0]访问,数组具有length字段,用于确定数组中元素的数量。

假设我们有一系列项目:

KitchenItem[] kitchenItems = soap.getKitchenItemsByLoginId(kitchenId);

打印数组中第一个元素的名称:

System.out.println(kitchenItems[0].getName());

打印数组中最后一个元素的名称:

System.out.println(kitchenItems[kitchenItems.length - 1].getName());

可以使用以下代码打印每个KitchenItem的所有名称:

KitchenItem[] kitchenItems = soap.getKitchenItemsByLoginId(kitchenId);
for (int i = 0; i < kitchenItems; i++) {
    KitchenItem kitchenItem = kitchenItems[i];
    System.out.println(kitchenItem.getName());
}

可以使用

将数组转换为通用List
List<KitchenItem> list = Arrays.asList(kitchenItem);

但是,由于最终会有额外的.,或者因为您在Eclipse中进行了严格的检查,因此您的代码可能无法正常工作。通用的List应该可以分配给简单的List