我已经创建了一个对象并尝试设置一些变量,但是我找不到应该创建的变量类型,以免出现任何问题。
主要课程的一部分:
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变量,编译器给出了错误。
答案 0 :(得分:2)
您的菜单类包含ArrayList变量,您尝试为它们分配一个String。代替:
menu.setMainDishes(MainDish);
尝试:
menu.getMainDishes().add(MainDish);
此外,Java中的常见约定是以小写字母开头的变量,例如mainDish
。
答案 1 :(得分:0)
当方法期望使用string
字符串时,您尝试传递ArrayList
。如果要按照当前的方式进行操作,请创建一个ArrayList
,将用户输入的内容输入,然后将该ArrayList
传递给需要它的方法。