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