我是java的新手,我目前正在设计一个购物车,可以让你为它添加产品并在购物车中显示什么。
目前我创建了一个这样的数组列表:
final ArrayList<Object> cart = new ArrayList<Object>();
然后我将一个对象“帽子”添加到购物车
hats Hat1 = new hats ("Hat",orderprice,colourtext,quantitynum,sizetext);
cart.add(Hat1); .
我的问题是如何让数组显示Hat及其属性?
干杯
答案 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方法中,您应该实现您的购物车逻辑。
如果您将这样做,您将拥有一个单独的购物车类,其中包含对象和购物车逻辑的集合。