我试图用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();
}
}
答案 0 :(得分:3)
您将无法在Java中动态创建新变量。 当我查看您方法的签名时,您无需返回多个变量,只需返回一个ShoppingBags数组即可。
您应该创建List<ShoppingBag>
类型的变量:
List<ShoppingBag> shoppingsBags=new ArrayList<>();
每次您都需要一个新的ShoppingBag:
bag=new ShoppingBag();
shoppingBags.add(bag);
最后将此列表转换为数组:
return shoppingBags.toArray(new ShoppingBag[0]);
答案 1 :(得分:2)
Java是静态编译的语言。通常,这是不可能的,或者确切地说是:对变量使用“动态”名称没有帮助。
您可以做的是:使用地图,或更简单的方法:使用数组数组保存数据。