【发布时间】:2020-09-21 15:40:12
【问题描述】:
我需要一些帮助,因为我被卡住了。我有一个名为 orderList 的 ArrayList,类型为 ItemOrdered(int quantity,Item item)。我想为给定项目存在的项目数量设置一个新值到 ArrayList 中。我尝试了所有方法,但没有成功。
//place new order from buyer class
public void placeOrder(int quantity, Item item) {
//ItemOrdered newitemordered = new ItemOrdered(quantity,item );
ShoppingCart shoppingCart = new ShoppingCart();
shoppingCart.addItemOrdered(quantity,item);
}
//call placeOrder method
buyer.placeOrder(quantity,eshop.ItemListPen.get(x));
import java.util.ArrayList;
public class ShoppingCart {
public ArrayList<ItemOrdered> orderList = new ArrayList<ItemOrdered>();
public void addItemOrdered(int quantity,Item item) {
if(item.getStock() >= quantity && (!item.equals(orderList))){
ItemOrdered newitemordered = new ItemOrdered(quantity,item);
orderList.add(new ItemOrdered(quantity,item));
}else if(item.getStock() < quantity){
System.out.println("Sorry,this quantity is not available in stock.");
}else{
orderList.get(item).setQuantity(quantity);
System.out.println("nothing");
}
}
}
public class ItemOrdered {
static Item item;
private int quantity;
public ItemOrdered(int quantity, Item item){
this.quantity=quantity;
this.item=item;
}
public void setQuantity(int x){
quantity=quantity + x;
}
}
【问题讨论】:
-
小心
.add(new ItemOrdered,你实际上已经在那里制作了2个不同的对象(参见前面的行)
标签: java object arraylist reference set