我有一个使用继承的数组,我想基本上是有一个保存食物和饮料的数组,看起来像这样

allFoodAndDrink.add(new Food(parameters);
allFoodAndDrink.add(new Drink(parameters);


因此,食物和饮料类型都存储在名为allFoodAndDrink的快餐数组中,但是当我想从某个起始索引到结束索引复制该数组时,我被告知要使用:

Arrays.copyOfRange();


但是当这样使用它时:

int[] drink = Arrays.copyOfRange(allFoodAndDrink, 5, 10);


它吐出并出错,建议将其切换为Arrays.copyOf(),然后吐出另一个错误以恢复为上一步。

有任何想法吗

最佳答案

使用ArrayList#subList()ArrayList#toArray()

int first = ...;
int last = ...;

Foods[] drink = new Foods[last - first];
allFoodAndDrink.subList(first, last).toArray(drink); // fill the array

10-06 10:52