我需要帮助。
我正在尝试完成两种不同的java方法。
1-第一个方法被称为getOrder(),它应该获得已经添加到ArrayList命名顺序的不同项的顺序,但我只是没有包含它的代码,因为我认为没有必要。我需要返回订单ArrayList的所有内容,只要它不包含null。 getItem方法(工作正常)使用类A4Q1Util加载订单中项目的内容。
我遇到的问题是这行代码:
return toBeReturned.add(A4Q1Util.getItem());
它出现以下错误:
类型不匹配:无法从布尔值转换为java.util.ArrayList
2-在第二种方法(printOrderCos)中,我倾向于从ArrayList顺序打印出totalCost项。我定义了变量totalCost和count。定义Count以使其作为索引遍历订单ArrayList的每个元素(项目),然后将每个项目的成本加到totalCost。
我遇到的第二种方法的问题是这行代码:
totalCost+=order.get(count);
它出错了:
错误:对于参数类型double,Item
,运算符+ =未定义public static ArrayList<Item> getOrder()
{
ArrayList<Item> toBeReturned;
toBeReturned = new ArrayList<Item>();
while (A4Q1Util.getItem()!=null)
{
return toBeReturned.add(A4Q1Util.getItem());
}
}
public static void printOrderCost(ArrayList<Item> order)//prints the total cost of the order
{
double totalCost;
int count;
totalCost=0;
for (count=0;count<order.size();count++)
{
totalCost+=order.get(count);//intValue();
}
System.out.println("The total cost of your order is:");
}
class Item
{
protected String description;
protected int quantity;
public Item (String description, int quantity)
{
this.description = description;
this.quantity = quantity;
}
}
class Coffee extends Item
{
protected double unitCost;
public Coffee (String description, int quantity)
{
super(description, quantity);//cost?,and price extraction
unitCost=4;
}
}
class Muffin extends Item
{
protected double unitCost1, unitCost2, unitCost3;
public Muffin (String description, int quantity)
{
super(description,quantity);
unitCost1=1;
unitCost2=0.75;
unitCost3=0.50;
}
}
class TimBits extends Item
{
protected double unitCost;
public TimBits (String description, int quantity)
{
super(description, quantity);
unitCost=0.25;
}
}
class A4Q1Util
{
private static ArrayList<Item> order;
private static int count = 0;
public static Item getItem()
{
Item item;
if (order==null)
{
order = new ArrayList<Item>();
order.add(new Muffin("Bran", 3));
order.add(new Coffee("Latte", 1));
order.add(new TimBits("Assorted", 24));
order.add(new Muffin("Chocolate", 1));
order.add(new Coffee("Decaf", 2));
order.add(new TimBits("Chocolate", 12));
order.add(new Muffin("PeanutButter", 2));
order.add(new Muffin("Blueberry", 5));
}
item = null;
if (count<order.size())
{
item = order.get(count);
count++;
}
{
return item;
}
}
}
答案 0 :(得分:1)
错误消息告诉您完全出了什么问题:
您正在尝试将一个项目添加到一个数字,这显然不起作用。相反,您可能想要从列表返回的项目上调用方法,可能是getCost()
方法或类似方法。我们没有要查看的Item类代码,因此无法告诉您调用哪个方法,但希望您的Item类具有返回数字的适当方法。
答案 1 :(得分:0)
您的方法get()
似乎正在返回Item
实例,因此您可能希望创建一个方法(如果尚未创建)以返回可用于添加到{{{ 1}},可能是这样的:
totalCost
答案 2 :(得分:0)
对于你的第二个问题,问题是“order.get(count)”返回Item对象。并且您不能使用double添加“Item对象”。
答案 3 :(得分:0)
问题1:
public static ArrayList<Item> getOrder()
{
ArrayList<Item> toBeReturned;
toBeReturned = new ArrayList<Item>();
Item item;
item=A4Q1Util.getItem();
while (item!=null)
{
toBeReturned.add(item);// it will all the items from A4Q1Util class to list
item=A4Q1Util.getItem();
}
return toBeReturned;
}