【发布时间】:2016-01-10 12:21:36
【问题描述】:
我的任务是将变量的类型更改为 ArrayList,我需要将其初始化为 ArrayList。我不知道该怎么做:(
我是这样尝试的:
private ArrayList<T> warehouseContent = new ArrayList<T>();
public void registerProducts(Product... products) {
WarehouseItem[] updatedWarehouseContent = new WarehouseItem[warehouseContent.size()
+ products.length];
int i = 0;
for (; i < warehouseContent.size(); i++) {
updatedWarehouseContent[i] = warehouseContent[i];
}
for (; i < updatedWarehouseContent.length; i++) {
updatedWarehouseContent[i] = new WarehouseItem(products[i - warehouseContent.size()]);
}
warehouseContent=updatedWarehouseContent;
}
但我认为这是不正确的。我需要更改的源代码如下:
private WarehouseItem[] warehouseContent = new WarehouseItem[0];
public void registerProducts(Product... products) {
WarehouseItem[] updatedWarehouseContent = new WarehouseItem[warehouseContent.length
+ products.length];
int i = 0;
for (; i < warehouseContent.length; i++) {
updatedWarehouseContent[i] = warehouseContent[i];
}
for (; i < updatedWarehouseContent.length; i++) {
updatedWarehouseContent[i] = new WarehouseItem(products[i - warehouseContent.length]);
}
warehouseContent=updatedWarehouseContent;
}
有人可以给我任何提示或解释我需要在这里使用泛型类型ArrayList吗?
【问题讨论】:
-
与其为“updatedWarehouseContent”使用数组,不如创建一个新的arraylist,将产品元素添加到其中,然后将“warehouseContent”分配给该列表?
-
@Pétur 这不是同一种“转换”。