【问题标题】:Shopping Cart in JavaJava中的购物车
【发布时间】:2014-12-10 03:19:09
【问题描述】:

我正在做一个任务,我必须有一个带有 GUI 的 Stamp 商店,用户需要能够在购物卡中添加和删除商品,然后在客户检查时将订单收据打印到文件中出去。我的购物车有很多问题,因为我不确定是否正确添加了商品,因为我无法显示它们。目前,购物车的代码是

ShoppingCart.java

import java.util.ArrayList;
import java.util.List;

public class ShoppingCart 
{
    static // creates arraylist for cart
    List<CartItem> items = new ArrayList<CartItem>();

    public void AddItem(CartItem store)
    {
        items.add(store);
    }

    public static void main(String[] args)
    {
        System.out.println(items.get(0));
    }


}

Item.java

import java.util.ArrayList;
import java.util.List;

public class Item
{
    ShoppingCart cart;

    public void CartSelection()
    {
        CartItem items = new CartItem("Parcel", 12, "Italy", true, 10.00);
        cart.AddItem(items);
    }
}

CartItem.java

import java.util.ArrayList;
import java.util.List;

// creates a class to store items in cart arraylist
public class CartItem
{
    public CartItem(
    String Type,
    Integer Weight,
    String Destination,
    Boolean NovDec,
    Double Price)
    {

    }
}

首先,代码给了我一个错误提示 The method get(int) is undefined for the type CartItem

查找问题原因后,我修改了代码,现在我得到了

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.rangeCheck(ArrayList.java:638)
    at java.util.ArrayList.get(ArrayList.java:414)
    at ShoppingCart.main(ShoppingCart.java:16)

任何正确方向的帮助或指示将不胜感激。

【问题讨论】:

    标签: java arrays arraylist cart assign


    【解决方案1】:

    看起来您的主要方法在将任何项目添加到列表之前调用了System.out.println(items.get(0));。这就解释了你得到的java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

    在访问列表之前必须检查索引是否有效:

    public static void main(String[] args)
    {
        if (items.size() > 0)
            System.out.println(items.get(0));
    }
    

    这可以防止异常发生,但我不确定它会让你更接近你想要实现的任何东西。

    【讨论】:

    • 我已经回到只说“方法 get(int) 未定义 CartItem 类型。”并且不知道如何进行
    【解决方案2】:

    这是输入两个项目然后打印它的好方法。

    public class ItemToPurchase 
    {
       public String itemName;
       public int itemPrice;
       public int itemQuantity;
    
       public ItemToPurchase()
       {
          itemName="none";
          itemPrice=0;
          itemQuantity=0;  
       }
    
       public void setName(String name)
       {
          itemName = name;   
       }
       public String getName()
       {
          return itemName;
       }
    
        }
    

    继续其他变量/数据成员

    然后是main方法

    import java.util.Scanner;
    public class ShoppingCartPrinter
    {
    
       public static void main(String[] args) 
       {
          ItemToPurchase item1= new ItemToPurchase();
          ItemToPurchase item2= new ItemToPurchase();
          Scanner kbdInput = new Scanner(System.in);
    
          System.out.println("Item 1");
          System.out.println( "Enter the item name: ");
          item1.setName(kbdInput.nextLine());
      etc...
    
          kbdInput.nextLine();
    
          ...
          System.out.println ( "Enter the item quantity: ");
          item2.setQuantity(kbdInput.nextInt());
    
    
    
          int totalItem1 = item1.getPrice()* item1.getQuantity();
    
    
          System.out.println ("\n"+"TOTAL COST");
          System.out.println (item1.getName()+" "+item1.getQuantity()+" "+" @ $" +totalItem1);
          etc...
          System.out.println ("Total: $"+ (totalItem1 + totalItem2));         
     }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-21
      相关资源
      最近更新 更多