如何使数组中的一个位置等于一个新对象?
public SalesItem findItem(String itemCode){
SalesItem[] item = new SalesItem();
for (int i=0; i<size; i++) {
if(itemCode.equals(items[i].getItemCode())){
if(items[i].getQuantity() > 0) {
item = items[i];
items[i].setQuantity(items[i].getQuantity()-1);
}
}
return item;
}
我试图找到数组中的位置包含字符串“itemCode”,然后使用该数组的位置使其等于我声明的新项目,以便我可以返回新项目被添加到购物篮中。
我知道我没有使用SalesItem对象做某事,但我不知道是什么。
答案 0 :(得分:3)
您正在声明一个SalesItems数组而不是一个对象,因此item
的声明应该是这样的:
SalesItem item = new SalesItem();
编辑:您可能还想完全删除新对象的创建,因为在item
分配值items[i]
后将不会使用它。所以只需声明如下:
SalesItem item = null;
在item = items[i]
之后,item
将包含对您要查找的数组中对象的引用,如果找不到,则为null。
答案 1 :(得分:0)
假设代码的其他部分是正确的(例如getQuantity()
中的setQuantity()
和SalesItem
),我唯一能看到的错误是:
SalesItem[] item = new SalesItem();
我想你只是想做:
SalesItem item = null;
如果没有项目与您要查找的findItem()
匹配,null
将返回itemCode
。