我有一个类来生成数组列表它似乎都工作,但主要是它产生了一个编译问题,我猜我的变量名不识别为数组列表
public class Order {
//Attributes
private ArrayList<DessertItem> order;
//Constructors
Order(){
order = new ArrayList<DessertItem>();
}
//Methods
public ArrayList<DessertItem> getOrderList(){
return order;
}//end of getOrderList
public void add(DessertItem aItem) {
order.add(aItem);
}//end of add
public int itemCount() {
return order.size();
}//end of itemCount
}//end of class
public class DessertShop {
public static void main(String[] args) {
//create order
Order order = new Order();
//create obj and adding to the order
Candy c1 = new Candy("Candy Corn", 1.5, .25);
order.add(c1);
for (DessertItem item : order) {//here is where is marked the error
System.out.printf("%s.%n", item.getName());
}
你的代码很难读。我建议你注意一下格式。
order
是Order
,不是ArrayList
。它有一个ArrayList
。这就是你想要迭代的。
试试这个:
for (DessertItem item : order.getOrderList()) {
System.out.printf("%s.%n", item.getName());
}
你的很多评论都很杂乱。我会把它们去掉。
我更喜欢静态类型的List<DessertItem>
的订单。如果需要,您可以更改List
的实现。