0

如何使数组中的一个位置等于一个新对象?

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 对象做正确的事情,但我不知道是什么。

4

2 回答 2

3

您正在声明一个 SalesItems 数组而不是一个对象,因此 的声明item可能应该是这样的:

SalesItem item = new SalesItem();

编辑:您可能还想完全删除新对象的创建,因为在item分配items[i]. 所以只需像这样声明它:

SalesItem item = null;

之后item = items[i]item将包含对您要查找的数组中的对象的引用,如果未找到,则为 null。

于 2013-05-15T13:23:43.677 回答
0

假设您的代码的其他部分是正确的(例如getQuantity()setQuantity()in SalesItem),我能看到的唯一错误是:

SalesItem[] item = new SalesItem();

我想你只是想做:

SalesItem item = null;

如果没有项目与您正在寻找的匹配,findItem()则将返回。nullitemCode

于 2013-05-15T13:23:57.107 回答