簡體   English   中英

從存儲在arraylist中的對象調用方法

[英]Calling methods from objects stored in an arraylist

我想知道為什么這不起作用。 我看了另一篇文章,提出了我用來從存儲在數組中的對象中調用方法的方法,但它似乎不起作用。 我應該澄清。 我指的是printPurchasestotalCost方法。 更具體地說,它們似乎不允許我從索引為iPurchase對象調用,而是似乎從get(i)部分調用。 在我的Eclipse應用程序中,它以紅色突出顯示。

public class Customer {

    private String name, address;
    double total;
    private ArrayList purchases = new ArrayList();

    public Customer(String name, String address){
        this.address=address;
        this.name=name;
    }

    public void makePurchase(Purchase purchase){
        purchases.add(purchase);
    }

    public String printPurchases(){
        for(int i=0; i<purchases.size(); i++){
            return **name+"\t"+address+purchases.get(i).toString();**
        }
        return"";
    }

    public double totalCost(){
        total=0;
        for(int i=0; i<purchases.size(); i++){
            total = **total+purchases.get(i).getCost();**
        }
    }
}

您的return語句在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>();

當您將類型信息(即Purchase屬性和方法)存儲在沒有泛型ArrayList時,其類型信息(即Purchase的屬性和方法)將被刪除(上載至Object ,沒有自定義的屬性或方法),請嘗試按以下方式存儲它們:

private ArrayList<Purchase> purchases = new ArrayList<>(); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM