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
_项目中的列表复制到ItemOrder.item
_ ordered,我有这样的错误:
java.lang.IndexOutOfBoundsException: destination.size() < source.size(): 0 < 1
答案 0 :(得分:2)
new ArrayList(10).size()
将返回0. 10是initialCapacity,而不是大小。
你可以这样做:
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);
顺便说一句,你对静态列表的使用有一种设计气味。