我想知道为什么这不起作用。我查看了另一篇文章,其中提出了我用于从存储在数组中的对象调用方法的方法,但它似乎没有用。我应该澄清一下。我指的是printPurchases
和totalCost
方法。更具体地说,它们似乎不允许我从索引Purchase
的{{1}}对象调用,而是似乎是从i
部分调用。它在我的eclipse应用程序中以红色突出显示。
get(i)
答案 0 :(得分:1)
您的退货声明应在return
和""
之间留出空格。
public String printPurchases(){
for(int i=0; i<purchases.size(); i++){
return name+"\t"+address+purchases.get(i).toString();
}
return "";
}
public double totalCost()
假设返回double
。您没有返回double
。
public double totalCost(){
total=0;
for(int i=0; i<purchases.size(); i++){
total = total+purchases.get(i).getCost();
}
return total;
}
另外,正如评论中所述,使用以下内容指定ArrayList
要填充的内容:
private ArrayList<Purchase> = new ArrayList<Purchase>();
答案 1 :(得分:1)
当您存储它们时,类型信息,即Purchase
的attr和方法将被删除(向上翻转为Object
,没有自定义 attr或方法)在没有通用类型的ArrayList
中,尝试将它们存储为:
private ArrayList<Purchase> purchases = new ArrayList<>();