0

Foodさて、私は食べ物を説明するさまざまなプロパティ(タンパク質(グラム)、カロリー、炭水化物など)を持つというオブジェクトを作成しました。Foodlist次に、Excelシートを読み取り、Foodスプレッドシートの各行に新しいオブジェクトを作成するというクラスを作成しました(オブジェクトにその行の列の情報を入力します)。次に、FoodlistクラスArrayListはFoodオブジェクトを作成します。ProteinList私は今、のサブリストでFoodListあり、すべての高タンパク食品を配列に分離する方法を持っているを作りたいと思っています。Proteinlistextends Foodlist、リスト内のFoodオブジェクトの「protein」プロパティにアクセスするにはどうすればよいですか?

これが私のコードが詰まっているところです:

    public Food[] groupProtein() {
        for(int i = 0; i < foodList.size(); i++)
        {
            if(foodList.get(i).protein > 6){//HERE IS THE PROBLEM, trying to get the property of the food object at i
                proteinFoods.add(foodList.get(i));
            }
        }

        Food[] temp = new Food[proteinFoods.size()];
        for (int i = 0; i < temp.length; i++) {
            temp[i] = proteinFoods.get(i);
        }

        return temp;
    }
4

3 に答える 3

0

proteinプロパティのゲッターがある場合、メソッドは次のようになります。

public Food[] groupProtein() {
    for(Food food : foodList)
    {
        if(food.getProtein() > 6){
            proteinFoods.add(food);
        }
    }

    return proteinFoods.toArray(new Food[0]);
}

proteinFoodsList<Food>…そうだと思いますか?

于 2013-01-22T08:53:32.953 に答える
0
public class ProteinList extends FoodList{
    //other stuff...
    public double get(int i){
        return super.get(i).getProtein();
    )
}

それはあなたが欲しいものですか?

于 2013-01-22T00:04:35.997 に答える
0

プロパティproteinprivateクラス定義のように定義されている場合、クラス外のメソッドからアクセスすることはできません。クラスで getter メソッド定義する必要があります。

public class Food {
    ...
    public int getProtein() {
        return protein;
    }
    ....
}

したがって、クラス外のメソッドから値を読み取ることができます。

foodList.get(i).getProtein()

私はそれfoodListが適切に定義されていると仮定しているので、get(i)メソッドはFoodオブジェクト(またはそれが返すことになっているクラス)を返します

于 2013-01-22T00:06:57.147 に答える