如何将变量从ArrayLists类设置为Main类?

时间:2019-05-06 12:30:17

标签: java class

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

主要课程的一部分:

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

由于我创建的String变量,编译器给出了错误。

2 个答案:

答案 0 :(得分:2)

您的菜单类包含ArrayList变量,您尝试为它们分配一个String。代替:

menu.setMainDishes(MainDish);

尝试:

menu.getMainDishes().add(MainDish);

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

答案 1 :(得分:0)

当方法期望使用string字符串时,您尝试传递ArrayList。如果要按照当前的方式进行操作,请创建一个ArrayList,将用户输入的内容输入,然后将该ArrayList传递给需要它的方法。