Java购物车阵列列表

时间:2013-05-30 13:44:33

标签: java arrays object

我是java的新手,我目前正在设计一个购物车,可以让你为它添加产品并在购物车中显示什么。

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

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

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

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

cart.add(Hat1); .

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

干杯

3 个答案:

答案 0 :(得分:1)

这一行:

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

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

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

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

然后,您可以通过调用get()对象上的ArrayList方法来重新审视帽子,该方法将返回hats类型的对象。

如果由于某种原因确实需要通用类型Object,那么你可以对get方法进行强制转换:

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

...但是从编码的角度来看这是非常糟糕的,并且提供比选择正确的通用参数更少的类型安全性。

答案 1 :(得分:0)

  

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

如下所示?

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

但是,我强烈建议您使用Hat而不是Object的arraylist。

 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();

答案 2 :(得分:0)

首先,我建议你永远不要使用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方法中,您应该实现您的购物车逻辑。

如果您将这样做,您将拥有一个单独的购物车类,其中包含对象和购物车逻辑的集合。