public void setAns() {
if("TF".equals(queType)){
ans.add("True");
ans.add("False");
}
else if("MC".equals(queType)){
System.out.println("Enter choice 1 of 4");
String ch1 = StdIn.readLine();
ans.add(ch1);
System.out.println("Enter choice 2 of 4");
String ch2 = StdIn.readLine();
ans.add(ch2);
System.out.println("Enter choice 3 of 4");
String ch3 = StdIn.readLine();
ans.add(ch3);
System.out.println("Enter choice 4 of 4");
String ch4 = StdIn.readLine();
ans.add(ch4);
}
else if("L5".equals(queType)){
ans.add("1");
ans.add("2");
ans.add("3");
ans.add("4");
ans.add("5");
}
}
ans是一个Arraylist。我正在尝试添加用户的输入,即String。当我运行它时会打印第一条消息,但是当我输入“ch1”的值时会出错。它基本上没有读取它,它提示我一个空指针异常
答案 0 :(得分:0)
这几乎可以肯定是由于ans
在add
被调用之前未被初始化。您可以尝试在调用setAns()
之前初始化它,或者尝试将其声明为局部变量,例如:
List<String> ans = new ArrayList<>();