Java 如何将ArrayList类中的变量设置为Main类?

Java 如何将ArrayList类中的变量设置为Main类?,java,class,Java,Class,我已经创建了一个对象,并试图设置一些变量,但我找不到应该创建的变量类型,以避免出现任何问题 主类的一部分: Menu menu = new Menu(); scanner.nextLine(); System.out.println("Give a code."); String code = scanner.nextLine(); m

我已经创建了一个对象,并试图设置一些变量,但我找不到应该创建的变量类型,以避免出现任何问题

主类的一部分:

                Menu menu = new Menu();
                scanner.nextLine();
                System.out.println("Give a code.");
                String code =  scanner.nextLine();
                menu.setCode(code);
                System.out.println("Give a main dish");
                String MainDish = scanner.nextLine();
                menu.setMainDishes(MainDish);
                System.out.println("Give a drink.");
                String Drink = scanner.nextLine();
                menu.setDrinks(Drink);
                System.out.println("Give a sweet.");
                String Sweet = scanner.nextLine();
                menu.setSweets(Sweet);  
和菜单类:

  public class Menu {
  ArrayList<String> MainDishes = new ArrayList<>();
  ArrayList<String> Drinks = new ArrayList<>();
  ArrayList<String> Sweets = new ArrayList<>();
  private String code;

  public ArrayList<String> getMainDishes() {
      return MainDishes;
  }

  public void setMainDishes(ArrayList<String> mainDishes) {
      MainDishes = mainDishes;
  }

  public ArrayList<String> getDrinks() {
    return Drinks;
  }

  public void setDrinks(ArrayList<String> drinks) {
      Drinks = drinks;
  }

  public ArrayList<String> getSweets() {
      return Sweets;
  }

  public void setSweets(ArrayList<String> sweets) {
      Sweets = sweets;
  }

  public String getCode() {
      return code;
  }

  public void setCode(String code) {
      this.code = code;
  }
公共类菜单{
ArrayList main=新的ArrayList();
ArrayList饮料=新的ArrayList();
ArrayList Sweets=新的ArrayList();
私有字符串码;
公共阵列列表getmain(){
返回主菜;
}
公共无效设置主控盘(ArrayList主控盘){
主菜=主菜;
}
公共ArrayList GetDiverses(){
归还饮料;
}
公共饮料(ArrayList饮料){
饮料=饮料;
}
公共数组列表getSweets(){
返回糖果;
}
公共无效糖果(ArrayList糖果){
糖果=糖果;
}
公共字符串getCode(){
返回码;
}
公共无效设置码(字符串码){
this.code=代码;
}

由于我创建的字符串变量,Compliler给出了一个错误。

当方法需要
ArrayList
字符串时,您试图传递
String
。如果您想按当前方式执行,请创建
ArrayList
,将用户输入放入其中,然后传递该
ArrayList
to调用它的方法。

您的菜单类包含ArrayList变量,您尝试为其分配字符串。而不是:

menu.setMainDishes(MainDish);
尝试:


此外,Java中的常见约定是以小写字母开始变量,例如
mainDish

请发布您收到的错误。您的对象是字符串的ArrayList,而不是字符串,因此您不能将其setter与字符串一起用作参数。要从用户输入设置列表,您必须每次将输入添加到对象的ArrayListst成员变量。
String mainDish=scanner.nextLine();menu.getmaindisks().add(mainDish);
您应该遵循Java命名约定:变量和方法名称总是用camelCase编写的,所以它们以小写开头。我很感激您的回答!有没有链接可以深入了解这是如何工作的?非常感谢!嗨,迈克,很高兴我能帮上忙。这是非常基本的getter和setter逻辑,我已经在网上发布了以下教程这可能会提供很多关于如何处理这些概念的深入信息,也许对您有用:
menu.getMainDishes().add(MainDish);