自定义类变量在数组中返回null

时间:2015-04-10 18:47:25

标签: java arrays casting null

以下是两段代码。

当我使用Student [] student = new Student [5]时,最后的代码行(student [StudentID] .i​​nputPref(惩罚))在检查其值后似乎为null。 但是对于第二个片段,如果我使用Student student = new Student()代替,则变量student.inputPref(惩罚)的地址可以指向我的班级学生。

对于我的工作,我需要使用学生[],因为我有一些学生输入,我需要输入,我不能只使用学生,是否有任何方式来解决这个问题?

Student[] student = new Student[5];
private void AddStudentActionPerformed(java.awt.event.ActionEvent evt) {                                           
    InputPreference(student);
}                                          

private void InputPreference(Student[] student){
    int[] penalty = new int[2];
    int StudentID;

    StudentID = Integer.valueOf(this.id.getText());
    penalty[0]= Integer.valueOf(this.pref1.getText());
    penalty[1]= Integer.valueOf(this.pref2.getText());

    student[StudentID].inputPref(penalty);
}

Student student = new Student();
private void AddStudentActionPerformed(java.awt.event.ActionEvent evt) {                                           
    InputPreference(student);
}                                          

private void InputPreference(Student student){
    int[] penalty = new int[2];
    int StudentID;

    StudentID = Integer.valueOf(this.id.getText());
    penalty[0]= Integer.valueOf(this.pref1.getText());
    penalty[1]= Integer.valueOf(this.pref2.getText());


    student.inputPref(penalty);
}

1 个答案:

答案 0 :(得分:3)

Student[] student = new Student[5];

语句仅初始化数组而不是其中的对象。您还必须初始化阵列中的每个Student实例。例如:

for(int i = 0; i < student.length; i++)
    student[i] = new Student();