[英]error: cannot find symbol and how to create and add objects to an arraylist
我正在尝试创建我的配置文件 class 的对象并将它们存储在我创建的 ProfileCollector class 中创建的 arrayList 中。
import java.util.ArrayList;
public class ProfileCollector
{
private ArrayList<Profile> profileList;
public ProfileCollector()
{
profileList = new ArrayList<Profile>();
//peopleList = new ArrayList<String>();
}
public void addProfile(String initName, int initKcalTotal, int initProteinTotal, int initFatTotal){
profileList.add(new Profile(initName, initKcalTotal, initProteinTotal, initFatTotal));
}
}
这是我的个人资料 class:
import java.util.ArrayList;
public class Profile
{
private ArrayList<DailyIntake> nutritionalStats;
private String name;
private int kcalTotal;
private int proteinTotal;
private int fatTotal;
//These values represent nutritional requirements
public Profile(String initName, int initKcalTotal, int initProteinTotal, int initFatTotal)
{
name = initName;
kcalTotal = initKcalTotal;
proteinTotal = initProteinTotal;
fatTotal = initFatTotal;
}
public String getName(){
return name;
}
public int getKcalTotal(){
return kcalTotal;
}
public int getProteinTotal(){
return proteinTotal;
}
public int getFatTotal(){
return fatTotal;
}
}
这是我的 main.java 中重要的部分
public static void main(String[] args) {
ProfileCollector profiles = new ProfileCollector();
//theres also a line that calls to a method which calls to another method with this line: profiles.addProfile(new Profile(name, optimumCalories, optimumProteins, optimumFats));
}
错误消息是找不到变量配置文件。 我的问题也是我是否正确创建对象并将它们添加到 ArrayList。 我不知道创建 class 是否是 go 的最佳方式,但这是我以前部分见过的方式。 任何事情都有帮助。
这是错误消息:
错误:找不到符号profiles.addProfile(new Profile(name,optimizeCalories,optimizeProteins,optimizeFats)); ^ 符号:可变型材位置:class 主要
您可以在 ProfileCollector class 中添加一个方法,该方法接受一个 Profile 实例而不是 4 个参数。 使用此 class,您应该能够将新配置文件添加到列表中,并且您还应该能够通过输入创建新配置文件实例所需的 4 个参数来添加配置文件。
import java.util.ArrayList;
public class ProfileCollector
{
private ArrayList<Profile> profileList;
public ProfileCollector()
{
profileList = new ArrayList<Profile>();
//peopleList = new ArrayList<String>();
}
public void addProfile(String initName, int initKcalTotal, int initProteinTotal, int initFatTotal){
profileList.add(new Profile(initName, initKcalTotal, initProteinTotal, initFatTotal));
}
public void addProfile(Profile profile) {
profileList.add(profile);
}
}
您需要确保通过参数将profiles
变量发送到 function,然后将其发送到您所说的另一个 function
profiles.addProfile(new Profile(name, optimumCalories, optimumProteins, optimumFats));
此外,您正在为 addProfile 提供变量类型 Profile,也许您只需要发送配置文件属性
profiles.addProfile(name, optimumCalories, optimumProteins, optimumFats);
或者将 addProfile 更改为通过参数设置 Profile,这是最佳实践
public void addProfile(Profile profile) {
profileList.add(profile);
}
如果这不是答案,您是否可以从该函数中添加一些代码,如果您不想共享放置的代码...
上面的两个答案都很好。
这是一个编译错误,因此您需要了解如何解释来自编译器的 IDE 错误消息。 问题是您正在调用一个不存在的方法签名。
伊瑟定义方法
public void addProfile(Profile profile)
或调用现有方法:
profiles.addProfile("Profile1", 1650, 450, 350);
使用“this”来指代 Object 中的自己的属性。
public void addProfile(String initName, int initKcalTotal, int initProteinTotal, int initFatTotal){
this.profileList.add(new Profile(initName, initKcalTotal, initProteinTotal, initFatTotal));
}
保持!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.