public class MainActivity extends Activity {
static List<Towar> chosen_items;
......
}
public class ItemOrder implements Serializable {
static List<Item> item_ordered;
....
}
我正在尝试做这样的事情:
ItemOrder.item_ordered = new ArrayList<Item>(MainActivity.chosen_items.size());
Collections.copy(ItemOrder.item_ordered, MainActivity.chosen_items);
我想将列表从 MainActivity.chosen
_items 复制到 ItemOrder.item
_ordered,但出现如下错误:
java.lang.IndexOutOfBoundsException: destination.size() < source.size(): 0 < 1
最佳答案
new ArrayList(10).size()
将返回 0。10 是初始容量,而不是大小。
你可以这样做:
ItemOrder.item_ordered = new ArrayList<Item>(MainActivity.chosen_items);
或者这个:
ItemOrder.item_ordered = Arrays.asList(new Item[MainActivity.chosen_items.size()]);
Collections.copy(ItemOrder.item_ordered, MainActivity.chosen_items);
顺便说一句,您对静态列表的使用有一种设计味道。
关于java - 复制静态列表的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21551661/