ArrayList不会添加多个项目

时间:2019-03-17 08:59:07

标签: java

我的数组不会在第一个列表之后添加任何内容,并且当我搜索之后的内容时始终返回null。

此方法有问题吗?

public void addItem(Item newItem) throws DuplicateItemException {
    Item tempItem;

    if(itemList == null) 
        itemList.add(newItem);

    try {
        tempItem = findItem(newItem.ID);

        if(tempItem == null) {
            itemList.add(newItem);
        }
        else {
            throw new DuplicateItemException(newItem.ID + "already exists");
        }
    } 
    catch (ItemNotFoundException e) {
        itemList.add(newItem);
    }
}

2 个答案:

答案 0 :(得分:0)

在您的代码中:

if(itemList == null) 
    itemList.add(newItem);

如果itemList确实是null,如何添加呢?

改为使用此

if(itemList == null) {
    itemList = new ArrayList<>();
    itemList.add(newItem);
}

答案 1 :(得分:-1)

尝试以下代码:

public void addItem(Item newItem) throws DuplicateItemException {
    if(itemList == null){
      itemList = new ArrayList<>();  //initialize list if null
    }

    if(itemList.contains(newItem)){
        throw new DuplicateItemException(newItem.ID + "already exists");
    }
    itemList.add(newItem); 
}