簡體   English   中英

Java:無法將int添加到arraylist

[英]Java: Can't add an int to an arraylist

我在這里創建了一個空的arraylist:

private ArrayList<OrderItem>  conveyorBelt = new ArrayList<OrderItem>(10);

在同一個類中,我創建了一個方法,通過輸入orderNum(它是一個int)將項目添加到傳送帶中。 該方法如下所示:

public void addToConveyorBelt( int orderNum )
{
OrderItem oi;
conveyorBelt.add(oi.getOrderNum(orderNum)); // line 4
}

這行不通。 我在第4行收到一個編譯錯誤,它是這樣的: http : //i52.tinypic.com/ny8n86.jpg

有人知道我要怎么做嗎?

ps-OrderItem包含一個名為theOrderNum的變量和一個稱為getOrderNum的方法。

根據錯誤消息,方法簽名“ getOrderNo”不接受類型為“ int”的參數。 根據您提供的信息,我懷疑OrderItem類看起來像這樣:

public class OrderItem {
    private int theOrderNum;

    OrderItem(int num) {
        theOrderNum = num;
    }

    public int getOrderNum() {
        return theOrderNum;
    }
}

如果是這樣,您想從orderNum參數創建一個新的OrderItem,然后將其添加到veyerBelt:

public void addToConveyorBelt(int orderNum) {
    OrderItem oi = new OrderItem(orderNum);
    conveyorBelt.add(oi);
}

如果不是,則需要更新問題以包括有關OrderItem類的更多信息。

getOrderNum顯然返回一個int。 您的arraylist是OrderItems的arraylist。 您期望發生什么?

不僅如此,而且由於oi尚未初始化,因此您在該處被確保為空指針異常。

我懷疑您的方法應該是這樣的:

public void addToConveyorBelt(int orderNum){
    OrderItem oi = getOrderItem(orderNum);
    conveyorBelt.add(oi); 
}

你像這樣定義arraylist

private ArrayList<OrderItem>  conveyorBelt = new ArrayList<OrderItem>(10);

這意味着您只能將 OrderItem 添加到列表中

public void addToConveyorBelt( int orderNum )
{
OrderItem oi;
conveyorBelt.add(oi.getOrderNum(orderNum)); // here it fails
}

如下更改

public void addToConveyorBelt( int orderNum )
    {
    OrderItem oi = new OrderItem(orderNum);
    conveyorBelt.add(oi); // here it fails
    }

oi.getOrderNum(orderNum)應該拋出NullPointerException

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM