尝试迭代数组列表<Obj>类时的编译问题



我有一个类来生成数组列表它似乎都工作,但主要是它产生了一个编译问题,我猜我的变量名不识别为数组列表

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

你的代码很难读。我建议你注意一下格式。

orderOrder,不是ArrayList。它有一个ArrayList。这就是你想要迭代的。

试试这个:

for (DessertItem item : order.getOrderList()) {
System.out.printf("%s.%n", item.getName());
}

你的很多评论都很杂乱。我会把它们去掉。

我更喜欢静态类型的List<DessertItem>的订单。如果需要,您可以更改List的实现。

最新更新