首页 > 解决方案 > 动态初始化数组名

问题描述

我正在尝试在此数组中创建一个具有 MAX_N 6 个对象的对象数组,然后在 else 语句中创建另一个数组以适应其余的数组对象。

我想命名新数组

sbag1
sbag2
etc

这是我的代码:

public static ShoppingBag[] packIntoBags(GroceryItem[] goods) {

    ShoppingBag newBag = new ShoppingBag();
    GroceryItem tmpObject = null;
    int index = 0;
    String bag = "newBag";
    String bagNum = bag + index;

    for (int i = 0; i < MAXNBAG; i++)
        if (newBag.numItems() < MAX_NUM_ITEMS) {    
            for (int k = 0; i < MAX_NUM_ITEMS; i++) {
                tmpObject = goods[i];
                newBag.addToBag(tmpObject);
            }
        }
    else {
        ShoppingBag newBag1 = new ShoppingBag();    
    }
}

标签: java

解决方案


您将无法在 java 中动态创建新变量。当我查看您的方法的签名时,您不需要返回多个变量,只需返回一个 ShoppingBags 数组。

您应该创建一个类型的变量List<ShoppingBag>

List<ShoppingBag> shoppingsBags=new ArrayList<>();

每次您需要一个新的 ShoppingBag 时:

bag=new ShoppingBag();
shoppingBags.add(bag);

最后将此列表转换为数组:

return shoppingBags.toArray(new ShoppingBag[0]);

推荐阅读