[英]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.