无法将用户的值输入到数组中,NullPointerException错误

时间:2017-04-09 22:14:01

标签: java nullpointerexception

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”的值时会出错。它基本上没有读取它,它提示我一个空指针异常

1 个答案:

答案 0 :(得分:0)

这几乎可以肯定是由于ansadd被调用之前未被初始化。您可以尝试在调用setAns()之前初始化它,或者尝试将其声明为局部变量,例如:

List<String> ans = new ArrayList<>();