Java 在对象的arraylist中获取对象的属性
好的,我制作了一个名为Java 在对象的arraylist中获取对象的属性,java,oop,arraylist,Java,Oop,Arraylist,好的,我制作了一个名为食物的对象,它具有描述食物的各种属性(蛋白质(克)、卡路里、碳水化合物等)。然后,我创建了一个名为Foodlist的类,该类读取excel表格,为电子表格的每一行创建一个新的Food对象(用该行列中的信息填充该对象);然后,Foodlist类创建食物对象的ArrayList。 我现在想制作一个ProteinList,它是FoodList的子列表,并且有一种方法可以将所有高蛋白食物分离成一个数组Proteinlist扩展了Foodlist,如何访问列表中食品对象的“prote
食物的对象,它具有描述食物的各种属性(蛋白质(克)、卡路里、碳水化合物等)。然后,我创建了一个名为Foodlist
的类,该类读取excel表格,为电子表格的每一行创建一个新的Food
对象(用该行列中的信息填充该对象);然后,Foodlist
类创建食物对象的ArrayList
。
我现在想制作一个ProteinList
,它是FoodList
的子列表,并且有一种方法可以将所有高蛋白食物分离成一个数组Proteinlist
扩展了Foodlist
,如何访问列表中食品对象的“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;
}
public Food[]groupProtein(){
对于(int i=0;i6){//问题是,试图在i处获取食物对象的属性
proteinFoods.add(foodList.get(i));
}
}
食品[]温度=新食品[proteinFoods.size()];
对于(int i=0;i
这就是您想要的吗?如果在类定义中将属性protein
定义为private
,您将无法从类外的任何方法访问它。您需要在类中定义一个getter方法:
public class Food {
...
public int getProtein() {
return protein;
}
....
}
foodList.get(i).getProtein()
因此,您可以从类外的方法读取值:
public class Food {
...
public int getProtein() {
return protein;
}
....
}
foodList.get(i).getProtein()
我假设foodList
已正确定义,因此get(I)
方法将返回Food
对象(或它要返回的任何类)如果您的protein
属性有一个getter,那么您的方法可以是:
public Food[] groupProtein() {
for(Food food : foodList)
{
if(food.getProtein() > 6){
proteinFoods.add(food);
}
}
return proteinFoods.toArray(new Food[0]);
}
我想proteinFoods
是一个列表
。。。对吗?在食品中如何定义蛋白质?公共可访问字段,还是仅通过getter/setter访问?我将它们都放在一个包中。如果我使用getter方法,我将如何访问它?foodlist.get(i).getProtein()并将其存储在局部变量中?如果食物有getter,可以执行foodlist.get(i).getProtein()
假设getProtein()
是getter方法。为什么不在食物列表类中放置一个方法,能够返回高蛋白食物的子集?谢谢,我现在就试试:),我还没有这样做,因为我对语法感到困惑。我有另一个类,它在一行中使用了几个“.”方法访问器,并不断收到一个关于“不安全方法”的奇怪编译器错误。“蛋白质”不是一个对象,它是一个食物对象的int值属性。我不认为它可以这样返回^protein是int
?还是dobule
?或者什么?