Как правильно указал @Bashir, вы добавляете разные types
переменных к определенному c типу ArrayList<String> shoppingCart
.
Я хотел бы сначала объяснить пару вещей, вместо того, чтобы копировать и вставлять решение , которое они вам дали, вы должны понимать лог c, стоящий за ним.
Object
этого экземпляра ArrayList<String>
может получить только String
по методу add()
.
Это не позволяет вам add
price
, а также quantity
, потому что temp
- это ArrayList<String>
, а не ArrayList<Integer>
или ArrayList<Double>
.
Ваша работа заключается в том, чтобы преобразовать его в String
и добавить его в ArrayList<String> temp
, что является программно правильным, но это не Object Oriented Programming
.
- Почему
ArrayList<ArrayList<String>> shoppingCart;
у вас не сработает:
Краткий пример:
Допустим, вы получаете вложенный ArrayList<String>
вот так:
ArrayList<String> itemDetails = shoppingCart.get(0);
// which item belong to which shopping cart?
Чтобы сделать эту работу вы должны count
каждые 3
ArrayList
Objects
, чтобы получить из shoppingCart
содержимое.
Вот так:
ArrayList<String> itemDetails = shoppingCart.get(0);
String details[] = new String[3];
details[0]=itemDetails.get(0);//barcode
details[1]=itemDetails.get(1);//price
details[2]=itemDetails.get(2);//quantity
У вас понимаете, куда я собираюсь с этим?
Оптимальный способ сделать это, как указал @Bashir.