Java Can';t输入用户';s值到数组,NullPointerException错误
ans是Arraylist。我正在尝试添加用户的输入,它是字符串。当我运行它时,它会打印第一条消息,但当我输入“ch1”的值时出现错误。它基本上不读取它,并提示我出现空指针异常这几乎可以肯定是因为在调用Java Can';t输入用户';s值到数组,NullPointerException错误,java,nullpointerexception,Java,Nullpointerexception,ans是Arraylist。我正在尝试添加用户的输入,它是字符串。当我运行它时,它会打印第一条消息,但当我输入“ch1”的值时出现错误。它基本上不读取它,并提示我出现空指针异常这几乎可以肯定是因为在调用add之前没有初始化ans。能否在调用setAns()之前尝试初始化它,或尝试将其声明为局部变量,例如: public void setAns() { if("TF".equals(queType)){ ans.add("True");
add
之前没有初始化ans
。能否在调用setAns()
之前尝试初始化它,或尝试将其声明为局部变量,例如:
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");
}
}
List ans=new ArrayList();
基本上,当您以null.member
或null[index]
结束时,会抛出NPE。由于我们没有看到您的完整代码,也没有完整的堆栈跟踪,我们无法确定发生了什么,但根据您的描述,NPE似乎是从ans.add(ch1)
抛出的。因为ArrayList保存nullans.add(null)
应该可以正常工作,这表明它是null.ans(ch1)
,这意味着您没有使用ArrayList实例初始化ans
。
List<String> ans = new ArrayList<>();