Hallo Leute!
Ich habe ein kleines, rekursives Programm geschrieben der Form:
Rufe ich jetzt methodeA(pojo) auf, so gibt er mir einmal die richtige Lösung raus (aus dem pojo.isSolved()-Block) per Polo.print() aus, rechnet dann aber weiter, gibt dann das null zurück und wird, wegen MethodeA, logisch, ne NullPointerException.
Sollte er aber nicht schon aufhören zu rechnen, wenn die er im pojo.isSolved()-Block den Wert returnt?
Ich stehe gerade mega auf dem Schlauch...
Danke für Eure Hilfe!
Ich habe ein kleines, rekursives Programm geschrieben der Form:
Java:
static void methodeA(POJO pojo) {
methodeB(pojo).print();
}
static POJO methodeB(POJO pojo) {
if (pojo.isSolved()) {
pojo.print();
return pojo;
} else {
int nextField = getNextIndex(pojo);
if (nextField != -1) {
int[] kandidaten = board.getCandidates(nextField);
for (int i = 0; i < kandidaten.length; i++) {
POJO newPOJO = pojo.set(nextField,
kandidaten[i]);
methodeB(newPOJO);
}
}
return null;
}
}
Rufe ich jetzt methodeA(pojo) auf, so gibt er mir einmal die richtige Lösung raus (aus dem pojo.isSolved()-Block) per Polo.print() aus, rechnet dann aber weiter, gibt dann das null zurück und wird, wegen MethodeA, logisch, ne NullPointerException.
Sollte er aber nicht schon aufhören zu rechnen, wenn die er im pojo.isSolved()-Block den Wert returnt?
Ich stehe gerade mega auf dem Schlauch...
Danke für Eure Hilfe!
Zuletzt bearbeitet: