开发者

Java: Can't add an int to an arraylist

I've created an empty arr开发者_高级运维aylist here:

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

And in the same class, I've created a method where I add item into the conveyorBelt by inputting the orderNum (which is an int). This is what the method looks like:

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

This doesn't work. I get a compile error on line 4, saying this: http://i52.tinypic.com/ny8n86.jpg

Anyone know where i'm going wrong with this?

p.s. - the OrderItem contains one variable called theOrderNum and a method that calls it called getOrderNum.


According to the error message, the method signature of "getOrderNo" does not accept a parameter of type "int". From what you've given, I suspect the OrderItem class looks something like this:

public class OrderItem {
    private int theOrderNum;

    OrderItem(int num) {
        theOrderNum = num;
    }

    public int getOrderNum() {
        return theOrderNum;
    }
}

If so, you want to create a new OrderItem from the orderNum parameter, and then add it to conveyerBelt:

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

If not, you need to update the question to include more information about the OrderItem class.


getOrderNum obviously returns an int. Your arraylist is an arraylist of OrderItems. What are you expecting to happen?

Not only that, but you're guarunteed a null pointer exception there because oi isn't initialised.


I suspect your method should be something like this:

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


you define arraylist like that

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

It means you can only add OrderItem to the list

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

Change it as follows

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

oi.getOrderNum(orderNum) should throw NullPointerException

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜