-2

如果这个问题很愚蠢,我提前道歉,但我目前正在做一些事情,这需要我实现一个循环来解析一个List类型的对象MenuItem。在循环内部,我需要将对象的名称存储在一个String变量中。

但是我不确定里面会有多少物品List,因此不知道variables我需要多少。我可以在循环内部以某种方式动态声明变量吗???以下是我当前的代码:

for(int i = 0; i != orderItems.size(); i++){
                MenuItem item = orderItems.get(i);
                String itemName = item.getName();
            }

上面循环的原因是因为当它退出时,我想通过发布请求将所有itemName变量发送到数据库。Http所以我可以像这样作为参数传递:

    new RequestTask().execute(url, itemName1, itemName2, itemName3);

任何帮助将非常感激!

4

3 回答 3

2

您可以使用 varargs 指定接受变量列表的方法。最后,它只是一个接受此类变量数组的方法。所以你会以

  new RequestTask().execute(url, items);  // items is String[]

如果您不知道a priori字符串的数量,请将它们存储在列表中。然后,您可以获得列表中的项目数,创建一个足够大的数组并填充它。或者,使用toArray可以做到这一点的方法。

于 2013-02-22T22:26:25.343 回答
1

这是我在循环未知值时一直使用的 ArrayList 语法。然后我将其转换为普通数组以进行进一步处理。

List<String> itemNameList = new ArrayList<String>();
for(int i = 0; i != orderItems.size(); i++) {
    MenuItem item = orderItems.get(i);
    itemNameList.add(item.getName());
}
String[] itemNameArray = new String[itemNameList.size()];
itemNameList.toArray(itemNameArray);
于 2013-02-22T22:34:02.340 回答
0

将它们放入某种列表中,即;

    ArrayList<String> itemNameList = new ArrayList<String>();
    for(int i = 0; i != orderItems.size(); i++){ 
         MenuItem item = orderItems.get(i);
         String itemName = item.getName();
         itemNameList.add(itemName);
    }
于 2013-02-22T22:29:00.233 回答