Java noobie数组问题

Java noobie数组问题,java,arrays,dynamic,Java,Arrays,Dynamic,我有两个数据类 第一: public class Question { public CharSequence question; public Answer answers[]; } 第二: public class Answer { public CharSequence text; public int number; } 现在我想保存一个问题的答案: Question qstn.answers = new Answer[2]; [...] 但

我有两个数据类

第一:

public class Question {

    public CharSequence question;
    public Answer answers[];

}
第二:

public class Answer {

    public CharSequence text;
    public int number;
}
现在我想保存一个问题的答案:

Question qstn.answers = new Answer[2];

[...]

但我有一个空点异常。怎么了?我不能在其他类中更改数组的长度吗?

您是否创建了问题优先的新实例,例如

Question qstn = new Question();
qstn.answers = new Answer[2];
此外,除非您进行了明智的优化,否则您可能希望尝试封装,并将实例变量设置为私有。通过公共API访问,例如getter或/和setter

此外,您可能希望在创建对象时实例化答案,例如

public class Question {

    public CharSequence question;
    public Answer answers[] = new Answer[2];

}

或者你可以在Question的构造函数中执行此操作(你需要添加一个构造函数,因为编译器会根据情况默认为你生成一个非参数构造函数)。

你是否先创建了Question的新实例,例如

Question qstn = new Question();
qstn.answers = new Answer[2];
此外,除非您进行了明智的优化,否则您可能希望尝试封装,并将实例变量设置为私有。通过公共API访问,例如getter或/和setter

此外,您可能希望在创建对象时实例化答案,例如

public class Question {

    public CharSequence question;
    public Answer answers[] = new Answer[2];

}

或者您可以在Question的构造函数中执行此操作(您需要添加一个构造函数,因为编译器将按照当前的方式默认为您生成一个非参数构造函数)。

您需要实例化您的Question类,首先:

Question qstn = new Question();

您需要实例化问题类,首先:

Question qstn = new Question();
试试这个:

Question qstn = new Question();

qstn.answers = new Answer[2];
试试这个:

Question qstn = new Question();

qstn.answers = new Answer[2];
我不能更改数组的长度吗 在别的班

这不是问题所在

问题是您尚未初始化
qstn

你应该做的是:

Question qstn = new Question();
qstn.answers = new Answer[2];
我不能更改数组的长度吗 在别的班

这不是问题所在

问题是您尚未初始化
qstn

你应该做的是:

Question qstn = new Question();
qstn.answers = new Answer[2];

您试图错误地访问阵列

 Question qstn = new Question();
 qstn.answers = new Answer[2];

您试图错误地访问阵列

 Question qstn = new Question();
 qstn.answers = new Answer[2];

对。您可以在另一个类中更改数组的长度

请检查是否已初始化变量
qstn

Question qstn = new Question();

对。您可以在另一个类中更改数组的长度

请检查是否已初始化变量
qstn

Question qstn = new Question();

我只想说,这是一个使用列表或集合而不是数组的好地方。列表或集合可以在没有预设大小的情况下增长。现在我使用“public ArrayList answer”;我只想说,这是使用列表或集合而不是数组的好地方。列表或集合可以在没有预设大小的情况下增长