以下是两段代码。
当我使用Student [] student = new Student [5]时,最后的代码行(student [StudentID] .inputPref(惩罚))在检查其值后似乎为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);
}
答案 0 :(得分:3)
Student[] student = new Student[5];
语句仅初始化数组而不是其中的对象。您还必须初始化阵列中的每个Student实例。例如:
for(int i = 0; i < student.length; i++)
student[i] = new Student();