Hallo Community,
ich habe eine Frage zu einem von mir geschriebenen Programm. Das Programm liest mithilfe von Array jeweils Buchtitel, Buchautor und Erscheinungsjahr ein. Die Methode addBuch verlängert das bestehende Array und fügt den neuen Titel, Autor und Jahr ein. Das Programm lässt sich auch kompilieren. Wenn ich es jetzt ausführe, werde ich nach Titel und Autor gefragt und kann diese auch korrekt einsetzen. Nur wenn ich zum Schluss das Erscheinungsjahr eingebe, wirft er mir eine NullPointerException. Ich habe dieses Fehler auch schon gegoogelt und weiß, dass dieser eigentlich nur entsteht wenn ein falscher Wert übergeben wird. Jedoch kann ich in der Methode addBuch keinen Fehler finden. Ich habe im folgenden Quellcode, die Stelle markiert an der scheinbar der Fehler auftritt.
Ich hoffe ihr könnt mir helfen und bedanke mich im Vorraus.
ich habe eine Frage zu einem von mir geschriebenen Programm. Das Programm liest mithilfe von Array jeweils Buchtitel, Buchautor und Erscheinungsjahr ein. Die Methode addBuch verlängert das bestehende Array und fügt den neuen Titel, Autor und Jahr ein. Das Programm lässt sich auch kompilieren. Wenn ich es jetzt ausführe, werde ich nach Titel und Autor gefragt und kann diese auch korrekt einsetzen. Nur wenn ich zum Schluss das Erscheinungsjahr eingebe, wirft er mir eine NullPointerException. Ich habe dieses Fehler auch schon gegoogelt und weiß, dass dieser eigentlich nur entsteht wenn ein falscher Wert übergeben wird. Jedoch kann ich in der Methode addBuch keinen Fehler finden. Ich habe im folgenden Quellcode, die Stelle markiert an der scheinbar der Fehler auftritt.
Ich hoffe ihr könnt mir helfen und bedanke mich im Vorraus.
Java:
public class BuchDaten {
/**
* Erzeugt Buchdaten-Array aus uebergebenen Attributen und
* haengt diese der als char[][][] Array uebergebenen Liste an.
*
* @param titel Vorname des anzulegenden Buchdatums
* @param autor Nachname des anzulegenden Buchdatums
* @param erscheinungsjahr Alter des anzulegenden Buchdatums
* @param liste Array mit bereits vorhandenen Buchdaten
* @return Kopie der Buchdatenliste ergaenzt um das neue Datum
* @throws RuntimeException falls erscheinungsjahr kleiner 0 oder groesser 2012
*/
public static char[][][] addBuch(char[] titel, char[] autor,
int erscheinungsjahr, char[][][] liste){
if((erscheinungsjahr < 0) || (erscheinungsjahr > 2012))
throw new RuntimeException("Erscheinungsjahr unkorrekt");
char [][][] neu = new char [liste.length+1][3][];
for(int i=0; i < liste.length; i++) {
neu[i] = liste[i];
}
neu[neu.length-1][0] = titel;
neu[neu.length-1][1] = autor;
[U][B] neu[neu.length-1][2][0] = (char) (erscheinungsjahr/1000 + ((int)'0'));[/B][/U]
neu[neu.length-1][2][1] = (char) ((erscheinungsjahr%1000) /100 +((int)'0'));
neu[neu.length-1][2][2] = (char)((erscheinungsjahr%100/10)+((int)'0'));
neu[neu.length-1][2][3] = (char)((erscheinungsjahr%10)+((int)'0'));
return neu;
}