Java 具有自己的类的NullPointerException

Java 具有自己的类的NullPointerException,java,arrays,class,initialization,Java,Arrays,Class,Initialization,我有点迷路了……我正在学习Java,必须编写一个小型轮询命令行应用程序 我们应该先用德语来编程,这样我们大家才能保持一致,所以我会尽量翻译,这样你们就更容易阅读了。 我的问题是,它在编译时引发异常,如下所示: 线程主java.lang.NullPointerException中出现异常 在communication.Poll.addQuestionItemPoll.java:18 main.PollTool.mainPollTool.java:8 是否初始化数组项时出错?我不应该这样做吗?这里怎

我有点迷路了……我正在学习Java,必须编写一个小型轮询命令行应用程序

我们应该先用德语来编程,这样我们大家才能保持一致,所以我会尽量翻译,这样你们就更容易阅读了。 我的问题是,它在编译时引发异常,如下所示:

线程主java.lang.NullPointerException中出现异常

在communication.Poll.addQuestionItemPoll.java:18

main.PollTool.mainPollTool.java:8

是否初始化数组项时出错?我不应该这样做吗?这里怎么了?我忘了什么吗

main.poll工具:

package main;
import communication.Poll;

public class PollTool {

    public static void main(String[] args) {
        Poll poll = new Poll ("Best Smartphone:",3);
        poll.addQuestionItem("iPhone");  //<--line 8
        poll.addQuestionItem("Android");
        poll.addQuestionItem("Windows Phone");

        poll.askQuestions("This poll determines the polularity of different Smartphones.");

    }

}

从外观上看,您正在创建数组,但它尚未包含对象。您可能希望在构造函数中使用它

questionItems = new QuestionItem[arraySize];
for(int i = 0; i < questionItems.length; i++) {
    questionItems[i] = new QuestionItem();
}

从外观上看,您正在创建数组,但它尚未包含对象。您可能希望在构造函数中使用它

questionItems = new QuestionItem[arraySize];
for(int i = 0; i < questionItems.length; i++) {
    questionItems[i] = new QuestionItem();
}

初始化如下所示的对象数组时:

questionItems = new QuestionItem[arraySize];
默认情况下,所有值都为空

在addQuestionItem中,尝试对数组中的对象调用方法。但是,该对象以null开头,因此这行代码不起作用:

questionItems[count++].setItemText(s);
您需要做的是在设置文本之前初始化对象:

questionItems[count] = new QuestionItem();
questionItems[count].setItemText(s);
count++;

或者,您也可以这样做,并在初始化数组时初始化所有对象。

初始化对象数组时,如下所示:

questionItems = new QuestionItem[arraySize];
默认情况下,所有值都为空

在addQuestionItem中,尝试对数组中的对象调用方法。但是,该对象以null开头,因此这行代码不起作用:

questionItems[count++].setItemText(s);
您需要做的是在设置文本之前初始化对象:

questionItems[count] = new QuestionItem();
questionItems[count].setItemText(s);
count++;

或者,您可以这样做,并在初始化数组时初始化所有对象。

@AnubianNoob为什么这不是一个解决方案?它确保所有数组项都是实际对象。糟糕,我误读了。很抱歉。好的解决方案+1。谢谢-我想我会使用Anubians解决方案,但你的解决方案现在也在我的笔记中:@AnubianNoob为什么它不是一个解决方案?它确保所有数组项都是实际对象。糟糕,我误读了。很抱歉。好的解决方案+1。谢谢-我想我会使用阿努比亚人的解决方案,但你的解决方案现在也在我的笔记中:这个问题没有重复。仅仅因为他得到了NullPointerException错误并不意味着这与其他NullPointerException问题是一样的…这个问题不是重复的。仅仅因为他得到了NullPointerException错误并不意味着这与其他NullPointerException问题是一样的…谢谢-我不知道我必须再次初始化它们。但是你描述得很好,所以它是有意义的:很高兴我能帮助你:谢谢你-我不知道我必须再次初始化它们。但你描述得很好,所以说得有道理:很高兴我能帮忙: