raffiSSL
Lt. Junior Grade
- Registriert
- Feb. 2006
- Beiträge
- 289
Hallo, ich habe eine Buchliste geschrieben, als doppelt verkettete Liste. Ein Buch hat nur Titel und Preis als Attribute.
Das Ausführen des Programms klappt soweit, aber sobald ich die Daten eines Buchs eingegeben habe kommt eine Fehlermeldung, die mir sagt das irgendetwas ins leere zeigt.
Dabei überprüfe ich doch beim Einfügen ob der head = null ist, oder liegt es garnicht daran?
Und hier nun die Codes dazu(ich poste mal jeweils nur die wichtigen Zeilen bzw. Methoden):
Main.java
Liste.java
Danke für die Hilfe und Mahlzeit
Das Ausführen des Programms klappt soweit, aber sobald ich die Daten eines Buchs eingegeben habe kommt eine Fehlermeldung, die mir sagt das irgendetwas ins leere zeigt.
Dabei überprüfe ich doch beim Einfügen ob der head = null ist, oder liegt es garnicht daran?
Code:
Exception in thread "main" java.lang.NullPointerException
at Liste.einfuegen(Liste.java:19)
at Main.go(Main.java:28)
at Main.main(Main.java:47)
Und hier nun die Codes dazu(ich poste mal jeweils nur die wichtigen Zeilen bzw. Methoden):
Main.java
Code:
public void go () {
in = new SimpleInput();
data = new Buch();
eintrag = new Liste();
int i;
char r;
System.out.println("Bücherverwaltung");
System.out.println("==================");
System.out.println("Menü:");
System.out.println("Buch hinzufügen --> 1");
System.out.println("Buch löschen --> 2");
System.out.println("Bücher anzeigen --> 3");
r = 'j';
while (r == 'j') {
i = in.readInt("Auswahl: ");
if (i == 1) {
data.readData();
head = new Knoten(data);
eintrag.einfuegen(head,data);
}
...
public static void main (String args[]) {
Main r = new Main();
r.go();
}
Liste.java
Code:
public void einfuegen (Knoten head,Buch b) {
Knoten temp = new Knoten(b);
if (head == null) {
head = temp;
head.setNext(null);
head.setPrev(null);
}
if (head.getNext().getData().getTitel().compareTo(b.getTitel()) == 0) {
temp.setPrev(head.getPrev());
head.setPrev(temp);
temp.setNext(head);
temp.getPrev().setNext(temp);
}
else {
einfuegen(head.getNext(),b);
}
}
Danke für die Hilfe und Mahlzeit