有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java错误:找不到符号以及如何创建和向arraylist添加对象

我正在尝试创建我的Profile类的对象,并将它们存储在我创建的ProfileCollector类中创建的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));

  }
}

这是我的个人资料课:

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;
  }

}

以下是我的主要部分。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中。我不知道创建类是否是最好的方法,但这是我以前见过的方法。什么都行

以下是错误消息:

错误:找不到符号 简介。添加配置文件(新配置文件(名称, 最佳卡路里、最佳蛋白质、最佳脂肪); ^ 符号:可变外形 地点:班主


共 (3) 个答案

  1. # 1 楼答案

    您可以在ProfileCollector类中添加一个方法,该方法接受一个概要文件实例,而不是4个参数。有了这个类,你应该能够将一个新的配置文件添加到你的列表中,你还应该能够通过输入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);
        }
    }
    
  2. # 2 楼答案

    您需要确保通过参数将profiles变量发送到该函数,然后将其发送到您所说的它调用的另一个函数

    profiles.addProfile(new Profile(name, optimumCalories, optimumProteins, optimumFats));
    

    此外,你给addProfile提供了一个变量类型的配置文件,也许你只需要发送配置文件

    profiles.addProfile(name, optimumCalories, optimumProteins, optimumFats);
    

    或者将addProfile更改为按参数配置,这是最佳做法

    public void addProfile(Profile profile) {
            profileList.add(profile);
        }
    

    如果这不是答案,如果您不想共享代码put ...,您可以从该函数中添加一些代码吗

  3. # 3 楼答案

    以上两个答案都很好

    这是一个编译错误,因此您需要学习如何解释来自编译器的IDE错误消息。 问题是您正在调用一个不存在的方法签名

    伊瑟定义了这个方法

    public void addProfile(Profile profile)

    或者调用现有的方法:

    profiles.addProfile("Profile1", 1650, 450, 350);

    使用“this”来指代对象中自己的属性

     public void addProfile(String initName, int initKcalTotal, int initProteinTotal, int initFatTotal){
            this.profileList.add(new Profile(initName, initKcalTotal, initProteinTotal, initFatTotal));
        }
    

    继续