每当我运行我的程序时,我都会收到此错误:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Course.enroll(Course.java:50)
at AppCoreProcessor.enroll(AppCoreProcessor.java:62)
at CourseWindow.actionPerformed(CourseWindow.java:91)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
这是生成在我的课程类中实现的异常的代码:
public static void enroll(Student student){
student.setStatus(true);
enrollees.add(student);
}
这是调用该方法的 AppCoreProcessor 类中的代码:
public static void enroll(int modelRow, int index) {
oldCourse.get(modelRow).enroll(oldStudent.get(index));
}
最后,这是从我的 AppCoreProcessor 类调用注册方法的代码:
public void actionPerformed(ActionEvent event) {
if(event.getSource()== enrollTo){
AppCoreProcessor.enroll(modelRow,index);
}
我在这里尝试的是,我在我的表中获取选定的索引,这与我的学生 ArrayList 中的索引完全相同,并且以同样的方式,当然从另一个表中获取选定的索引。我现在将使用这些值从我的应用处理器类中调用静态方法enroll(int,int) 。我只是想不通为什么我会得到 NullPointerException?请帮助我,我只是java的新手。
编辑* 这是我的学生和课程的 ArrayList 的实现,
public class AppCoreProcessor {
private static ArrayList<Student> Student = ReadAndWrite.getDefaultStudentArrays();
private static ArrayList<Course> Course = ReadAndWrite.getDefaultCourseArrays();
我将这些数组用作我的 JTables 中的数据,在使用注册方法之前,我做了一个 System.out.println 语句以在给定索引处显示学生并真正显示值,我检查了课程不是null 并且学生不为 null,但是每当我调用课程类的方法enroll(Student s)以将学生注册到该课程时,它只会抛出 nullpointer 异常?我不知道为什么?