【问题标题】:Java Shopping Cart Array List [closed]Java购物车数组列表[关闭]
【发布时间】:2013-05-30 13:44:33
【问题描述】:

我是 Java 新手,我目前正在设计一个购物车,允许您向其中添加产品并显示购物车中的内容。

目前我创建了一个这样的数组列表:

final ArrayList<Object> cart = new ArrayList<Object>();

然后我将一个对象“帽子”添加到购物车

hats Hat1 = new hats ("Hat",orderprice,colourtext,quantitynum,sizetext);

cart.add(Hat1); .

我的问题是如何让数组显示帽子及其属性?

干杯

【问题讨论】:

  • 如果你想要一种廉价的讨厌的方式来做这件事,看看从 commons-lang 到 string 的反射。将其添加到您的 hats 类中,然后 toString 应该打印出所有属性。

标签: java arrays object


【解决方案1】:

这一行:

final ArrayList<Object> cart = new ArrayList<Object>();

可能是错误的,除非您确实希望您的 ArrayList 包含任何和所有对象类型。如果您只是将帽子放入 ArrayList,那么您给出的代码应该是:

final ArrayList<hats> cart = new ArrayList<hats>();

...虽然我建议更改您的命名以遵循 Java 约定,但类应以大写字母开头,变量以小写字母开头,而不是相反。

然后,您可以通过在您的 ArrayList 对象上调用 get() 方法来检索帽子,这将返回一个 hats 类型的对象。

如果出于某种原因您确实需要将泛型类型设为 Object,那么您可以对 get 方法进行强制转换:

hats myHat = (hats)cart.get(0);

...但从编码的角度来看,这更糟糕,并且提供的类型安全性比选择正确的泛型参数开始时要少得多。

【讨论】:

    【解决方案2】:

    我的问题是如何让数组显示帽子及其 属性?

    类似下面的东西?

    final ArrayList<Object> cart = new ArrayList<Object>();
    Hat hat =(Hat) cart.get(0);
    hat.getWatever();
    

    但是,我强烈建议您使用 Hat 而不是 Object 的数组列表。

     final ArrayList<Hat> cart = new ArrayList<Hat>();
    hats Hat1 = new hats ("Hat",orderprice,colourtext,quantitynum,sizetext);
    cart.add(Hat1); .
        Hat hat =cart.get(0);//notice don't need to cast
        hat.getWatever();
    

    【讨论】:

      【解决方案3】:

      首先我建议你永远不要将 Object 用作​​集合的通用参数(除非确实需要它)。

      这样你就会有一个帽子列表:

      ArrayList<Hats> cart = new ArrayList<Hats>();
      

      如果你想对整个 Hats 对象集合做一些事情,你将不得不创建一种容器类来实现关于整个集合的逻辑,因为 ArrayList 类不具备这样的逻辑。

      所以我建议你创建一个类 Cart,其中包含一个 Hats 列表和方法,以及你想要应用于整个购物车项目集合的逻辑。

      例如:

      public class Cart {
          private ArrayList<Hats> _hats = new ArrayList<Hats>();
      
          public List<Hats> getHats
          {
              return _hats;
          }
      
          public Cart()
          {
      
          }
      
          public void DoSomthingWithCart()
          {
              .....
          }
      }
      

      在这个类中 _hats 将包含您的购物车项目,在 DoSomthingWithCart 方法中您应该实现您的购物车逻辑。

      如果您采用这种方式,您将为您的购物车创建一个单独的类,其中包含对象集合和购物车逻辑。

      【讨论】:

        猜你喜欢
        • 2012-08-26
        • 2010-12-22
        • 1970-01-01
        • 2012-07-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多