为什么这个数组初始值设定项会抛出NullPointerException?

时间:2014-05-27 02:15:08

标签: java arrays nullpointerexception

我目前正在学习Java,我想知道为什么这段代码会在下面指定的行中抛出NullPointerException。 Question对象是一个用户定义的类,在初始化对象时将两个字符串作为参数。

public class QuizTime
{
    public static void main (String[] args)
    {
            Quiz qz = new Quiz();

            // Throws a NullPointerException
            qz.add (new Question ("How may US states are there?", "50"));
    }
}

以下是支持班级。 NullPointerException也表示“quiz [count] = q;”

行的问题
import java.util.Scanner;

public class Quiz
{   
    private Question[] quiz;
    private int count;
    private final int MAX_QUESTIONS = 25;

    public void Quiz ()
    {
            quiz = new Question[MAX_QUESTIONS];
            count = 0;
    }

    public void add (Question q)
    {
            if (count < MAX_QUESTIONS)
            {
                    // Throws a NullPointerException
                    quiz[count] = q;
                    count++;
            }
    }

1 个答案:

答案 0 :(得分:5)

public void Quiz ()

应该是

public Quiz() 

以便被视为构造函数并正确初始化您的对象。否则,这是一种你无法调用的方法。