麻烦使用输入和Arraylists

时间:2012-01-19 04:52:29

标签: java

我遇到了麻烦。我试图允许用户在另一个文件中输入方法的参数。但它给了我两个错误。任何人都可以帮助我

public int countItem(Item purchase)
     {
        int quantity = 0;
        if(cart.indexOf(purchase) == -1)
            quantity = 0;
        else
             quantity = purchase.getQuantity() ;

        return quantity;
             }

这是我的第二个档案。

 System.out.println ("What item do you want to find?");
                purchase = input.nextline(); //ERROR ERROR
                System.out.println("You have " + basket.countItem() + purchase + "soup in your cart."); // ERROR

这些是我得到的错误。

 --------------------Configuration: <Default>--------------------
F:\School\CS I AP\Chapter 7\Shopping Cart Lab\Shop.java:71: error: cannot find symbol
            purchase = input.nextline();
            ^
  symbol:   variable purchase
  location: class Shop
F:\School\CS I AP\Chapter 7\Shopping Cart Lab\Shop.java:71: error: cannot find symbol
            purchase = input.nextline();

我也意识到我遇到了第三个错误。

error: method countItem in class ShoppingCart cannot be applied to given types;

3 个答案:

答案 0 :(得分:1)

似乎Java编译器找不到变量purchase。有几种情况:

  1. Item类位于另一个文件夹中,尚未导入。 (非常常见的错误)

  2. 尚未声明变量purchase

  3. 变量名称,变量声明或方法名称中的错字错误。

  4. 从您的错误中,您似乎没有声明变量purchase。它应该是:
    String purchase = input.nextLine();

    另外,你输了一个错字。它应该是nextLine()而不是nextline()

    请注意,您需要将purchase对象从String转换为Item对象,因为您的countItem()方法仅接受Item宾语。 nextLine()类中的Scanner方法仅返回String对象,您不能将其直接强制转换为Item对象,否则您将收到另一个编译器错误。 例如,如果你有一个新的Item对象的构造函数,它接受String

    Item item = new Item(purchase); 
    int count = itemCount(item);
    

    至于你的第三个错误,你已经声明你的countItem()方法接受一个Item类型的参数,但在你的代码中你没有任何参数调用它,因此编译器抱怨它

答案 1 :(得分:0)

你应该宣布购买。

String purchase

答案 2 :(得分:0)

您得到的错误是因为程序不知道变量purchase是什么。基本上,在调用它时,范围内没有purchase名称的对象。

如果您可以发布更多代码以显示Main方法的完整范围,那么这将有助于我们向您展示定义purchase的位置,以便在调用它时它在范围内。

最后一个错误由()修复,即:

 System.out.println("You have " + (basket.countItem() + purchase) + "soup in your cart."); 

或者像这样:

 int temp = basket.countItem() + purchase;
 System.out.println("You have " + temp + "soup in your cart."); 

当然,假设购买是int。需要更多背景来确保