A program futtatásakor ezt a hibát kapom:
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)
Ez a kód generálja a kivételt, amelyet a kurzusosztályomban implementáltam:
public static void enroll(Student student){
student.setStatus(true);
enrollees.add(student);
}
Ez az AppCoreProcessor osztályom kódja, amely meghívja a metódust:
public static void enroll(int modelRow, int index) {
oldCourse.get(modelRow).enroll(oldStudent.get(index));
}
És végül ez a kód, amely meghívja a bejelentkezési metódust az AppCoreProcessor osztályomból:
public void actionPerformed(ActionEvent event) {
if(event.getSource()== enrollTo){
AppCoreProcessor.enroll(modelRow,index);
}
Itt arra törekszem, hogy a kiválasztott indexet megkapom a táblámban, amely pontosan ugyanaz az index, mint az ArrayList hallgatóimban, és ugyanígy a kiválasztott indexet természetesen egy másik táblából. Most ezeket az értékeket fogom használni az enroll(int,int) statikus metódus meghívására az alkalmazásprocesszor osztályból. és egyszerűen nem értem, miért kapom a NullPointerException-t? kérlek segítsetek, még csak új vagyok a java-ban.
Szerkesztés* Ez az én ArrayList hallgatóim és kurzusom megvalósítása,
public class AppCoreProcessor {
private static ArrayList<Student> Student = ReadAndWrite.getDefaultStudentArrays();
private static ArrayList<Course> Course = ReadAndWrite.getDefaultCourseArrays();
és ezeket a tömböket adatként használom a JTable-jaimban. És mielőtt a beiratkozási módszert használtam volna, készítettem egy System.out.println utasítást, hogy megjelenítsem a hallgatót egy adott indexen, és valóban megjeleníti az értéket, ellenőriztem, hogy a kurzus nem null és a hallgató nem null, de amikor meghívom a kurzusosztályom enroll(Student s) metódusát, hogy beírjam a hallgatót abba a kurzusba, akkor csak az Exception ? ami nem tudom miért?