[英]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.