Nullpointer bei Objekt Serialisierung mit ArrayList<byte[]> etc.

willyk311

Mitglied
Hey Leute, versuche gerade eine Speichern-Funktion für ein Spiel zu implementieren. Das Spiel soll 4 Speicherslots haben, die bei jedem Neustart automatisch geladen werden sollen. Da es nicht ausschließlich um das Spiel geht und es wahrscheinlich an meinen nicht vorhanden Skills liegt, poste ich es mal in diesem Anfänger Thread.
Die Klasse SaveGames unten, soll byte Arrays in einer ArrayList speichern, was dann im SaveGames Objekt auf der Festplatte gespeichert werden soll. Aber irgendwie bekomme ich Nullpointer nachdem ich das Programm neustarte und versuche ein Spiel zu laden oder zu speichern. Wenn es noch keine gespeicherte Datei gibt und ich im Spiel einen Spielstand speicher, dann geht das problemlos auch auf mehreren Indizes auf der ArrayList und der lädt auch ständig die Datei mit um zu testen ob ein Index leer ist.
Wenn ich das Programm neustarte und versuche ein anderes Spiel zu speichern, bekomme ich einen Nullpointer bei `Collections.replaceAll(saves, saves.get(slot), savegame);` Ist das das Problem vielleicht?

Nach dem Neustarten kommt hier der Nuller, wenn ich laden will:

if (SaveGames.getInstance().getSaveGames().get(slot) == null)

Das ist die SaveGames Klasse, könnt ihr da Fehler entdecken?

Code:
    public class SaveGames implements Serializable {

    private static final long serialVersionUID = 1893501111568176741L;

	private static SaveGames instance;

	private static ArrayList<byte[]> saves;

	private static String[] saveNames;

	Date datumHeute = new Date();

	SimpleDateFormat myDateFormat = new SimpleDateFormat("dd.MM.yyyy, HH:mm:ss");

	private SaveGames() {
		saves = new ArrayList<byte[]>(4);
		saves.add(0, null);
		saves.add(1, null);
		saves.add(2, null);
		saves.add(3, null);
		saveNames = new String[4];
	}

	public String getSaveName(int slot) {
		return saveNames[slot];
	}

	public ArrayList<byte[]> getSaveGames() {
		return saves;
	}

	public void addSaveGame(byte[] savegame, int slot) {
		Collections.replaceAll(saves, saves.get(slot), savegame);
		saveNames[slot] = ("" + myDateFormat.format(datumHeute));
	}

	public static SaveGames getInstance() {
		if (instance == null) {
			loadFromDrive();
		}
		return instance;
	}

	public void saveToDrive() {
		FileOutputStream b = null;
		try {
			b = new FileOutputStream("save.ser");
			ObjectOutputStream o = new ObjectOutputStream(b);
			o.writeObject(this);
			o.close();
		} catch (IOException ioe) {
		}
	}

	public static void loadFromDrive() {
		FileInputStream b = null;
		try {
			b = new FileInputStream("save.ser");
			ObjectInputStream o = new ObjectInputStream(b);
			instance = (SaveGames) o.readObject();
			o.close();
		} catch (NullPointerException | IOException | ClassNotFoundException e) {
			System.out.println("Class not Found!");
			instance = new SaveGames();
		}
	}
}
 

willyk311

Mitglied
Also
Java:
Collections.replaceAll(saves, saves.get(slot), savegame);
habe ich ersetzt durch
Java:
saves.set(slot, savegame);

replaceAll, hat alle Slots überschrieben. Nichts destotrotz habe ich noch immer den anderen Fehler.


Sollte man den Thread vielleicht doch zu Spiele verschieben, weil hier nur auf noch einfachere Fragen geantwortet wird?
 

ssoul26

Bekanntes Mitglied
Also
Java:
Collections.replaceAll(saves, saves.get(slot), savegame);
habe ich ersetzt durch
Java:
saves.set(slot, savegame);

replaceAll, hat alle Slots überschrieben. Nichts destotrotz habe ich noch immer den anderen Fehler.


Sollte man den Thread vielleicht doch zu Spiele verschieben, weil hier nur auf noch einfachere Fragen geantwortet wird?

Die Antwort ist wahrscheinlich noch einfacher als die Frage:)

Java:
SaveGames.getInstance().getSaveGames().get(slot) == null

Ich gehe mal davon aus, dass deine Instance null ist. Wieso setzt du nicht einfach einen Haltepunkt in der loadFromDrive -Methode und debuggst das mal durch!? Kommst sicherlich schneller ans Ziel.

Weiterhin würde ich bei der saveToDrive()- Methode in die Exception was reinschreiben, vllt läuft ja hier auch etwas schief?


Ändere hier mal die catch -Anweisung dahingehend, dass sie vorerst alle Exceptions abfängt.
Java:
public static void loadFromDrive() {
		FileInputStream b = null;
		try {
			b = new FileInputStream("save.ser");
			ObjectInputStream o = new ObjectInputStream(b);
			instance = (SaveGames) o.readObject();
			o.close();
		} catch (NullPointerException | IOException | ClassNotFoundException e) {
			System.out.println("Class not Found!");
			instance = new SaveGames();
		}
	}

....
catch (Exception e) {
                        e.printStackTrace();
			System.out.println("Class not Found!");
			instance = new SaveGames();
		}
...
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Referenz an ein Objekt in einer anderen Klasse erstellen(Nullpointer exception) Java Basics - Anfänger-Themen 6
M Nullpointer beim befüllen meiner Liste im Object Java Basics - Anfänger-Themen 3
U Warum kriege ich hier eine nullpointer exception, sehe den Fehler nicht (swing) Java Basics - Anfänger-Themen 1
Dimax BufferedReader.readLine().length() wirft NullPointer Java Basics - Anfänger-Themen 6
AlexG. Nullpointer Exeption Java Basics - Anfänger-Themen 46
AlexG. Nullpointer exeption Fehler Java Basics - Anfänger-Themen 0
B EJB und Arquillian - bekomme Nullpointer Exception beim Aufruf der EJB Klasse Java Basics - Anfänger-Themen 40
D Warum die Nullpointer Exception Java Basics - Anfänger-Themen 6
N Nullpointer exception Java Basics - Anfänger-Themen 4
D Erste Schritte Java.lang.NullPointer.Exception Java Basics - Anfänger-Themen 8
Z Getter/Setter NullPointer Exception Java Basics - Anfänger-Themen 6
W Nullpointer Exception bei .add(...) Java Basics - Anfänger-Themen 6
J Nullpointer aber wo? Java Basics - Anfänger-Themen 12
B OOP Über einen AVL-Baum iterieren (NullPointer) Java Basics - Anfänger-Themen 5
F Operatoren Wieso fliegt hier eine NullPointer Exception :( Java Basics - Anfänger-Themen 3
F nullpointer exception - arrayerstellung Java Basics - Anfänger-Themen 4
K Nullpointer beim Erstellen eines Imageicons Java Basics - Anfänger-Themen 2
O Perfomance: Arraylist absichtlich zum Nullpointer schicken... Java Basics - Anfänger-Themen 16
S Iterator next() Nullpointer Java Basics - Anfänger-Themen 2
R indexOf wirft NullPointer Exception Java Basics - Anfänger-Themen 2
Q CardLayout und NullPointer Java Basics - Anfänger-Themen 3
R NullPointer Exceptions Java Basics - Anfänger-Themen 3
P ArrayList Nullpointer? Java Basics - Anfänger-Themen 4
H Nullpointer Exception Java Basics - Anfänger-Themen 8
P NullPointer Exception Java Basics - Anfänger-Themen 6
C Erste Schritte GUI - ActionListener - Exception Nullpointer Java Basics - Anfänger-Themen 5
M TextField Nullpointer Exc Java Basics - Anfänger-Themen 8
C Java Nullpointer Exception in 2D-Spiel Snake Java Basics - Anfänger-Themen 8
N NullPointer Exception bei setSource (Audioplayer mit JMF) Java Basics - Anfänger-Themen 6
I Array - Nullpointer Ausnahme Java Basics - Anfänger-Themen 2
J Methoden in externer Klasse -> Nullpointer Exception Java Basics - Anfänger-Themen 9
J NullPointer bei ArrayList.add Java Basics - Anfänger-Themen 6
J Nullpointer Exception - Warum? Java Basics - Anfänger-Themen 9
C NullPointer Java Basics - Anfänger-Themen 3
D NullPointer bei ActionCommand in Array Java Basics - Anfänger-Themen 2
D Dubioser Nullpointer Java Basics - Anfänger-Themen 5
M Java3D TransformChanged nullpointer ??? Java Basics - Anfänger-Themen 2
K zufallszahlen in Array Speichern = Nullpointer exception Java Basics - Anfänger-Themen 24
X Nullpointer Fehler Java Basics - Anfänger-Themen 3
D Nullpointer Exception Java Basics - Anfänger-Themen 2
Developer_X NullPointer Exception ohne Sinn Java Basics - Anfänger-Themen 19
MEETyA NullPointer Exception - Sudoku Java Basics - Anfänger-Themen 2
R Probleme mit NullPointer beim Mp3 abspielen (JMF) Java Basics - Anfänger-Themen 21
D Nullpointer exception bei: if( (rc.getTower != null) ) {..} Java Basics - Anfänger-Themen 2
Antoras Nullpointer bei Wertübergabe Java Basics - Anfänger-Themen 10
Antoras Swing repaint und Nullpointer Java Basics - Anfänger-Themen 6
G NullPointer bei if anweisung Java Basics - Anfänger-Themen 14
Antoras NullPointer und Swing-Problem Java Basics - Anfänger-Themen 2
G (csv)Datei lesen FindBug findet mgl. NullPointer - wie lösen Java Basics - Anfänger-Themen 3
A g=panel.getGraphics() im Thread => Nullpointer Java Basics - Anfänger-Themen 9
G Problem mit Nullpointer Exception Java Basics - Anfänger-Themen 2
K Nullpointer Exception? Was tun? Java Basics - Anfänger-Themen 7
T KeyListener, Nullpointer und eine unbekannte Variable Java Basics - Anfänger-Themen 6
E Fehler NullPointer beim Ausführen Java Basics - Anfänger-Themen 4
E nullpointer bei BufferedImage Java Basics - Anfänger-Themen 2
R Wieder mal ne NullPointer Exception. Java Basics - Anfänger-Themen 8
D nullpointer exception Java Basics - Anfänger-Themen 12
S Arrays und Nullpointer Java Basics - Anfänger-Themen 6
D Problem mit Vector / Nullpointer Exception Java Basics - Anfänger-Themen 3
S Nullpointer Exception bei Point2D Java Basics - Anfänger-Themen 2
8 JLayer Nullpointer Exception Java Basics - Anfänger-Themen 6
megachucky kleines problem mit einer nullpointer exception Java Basics - Anfänger-Themen 2
B NullPointer... Java Basics - Anfänger-Themen 6
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
Rxiiz Objekt aus ComboBox entfernen Java Basics - Anfänger-Themen 4
I JSON in Objekt umwandeln Java Basics - Anfänger-Themen 3
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
B Objekt aus generalisierter Liste entfernen Java Basics - Anfänger-Themen 11
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
Say Objekt Java Basics - Anfänger-Themen 4
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
T Wie kann man es machen das ein Objekt nicht übermalt wird Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
I Entity Objekt nicht gefunden -> Webhook empfangen in der gleichen Methode (Transaktion) Java Basics - Anfänger-Themen 37
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
K wie kann ich alle Attribute von dem Objekt(pagode) ausgeben lassen ? Java Basics - Anfänger-Themen 3
H Ein übergegebenes Objekt auf null setzen Java Basics - Anfänger-Themen 9
M BlueJ Objekt in Objektliste Java Basics - Anfänger-Themen 2
B Objekt in Klassendiagramm an fremdes Objekt weiterreichen? Java Basics - Anfänger-Themen 6
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
frager2345 Aufgabe Hash Objekt Elemente ausgeben Java Basics - Anfänger-Themen 2
amelie123456 Objekt Farbe Quellcode Java Basics - Anfänger-Themen 4
M Objekt in einem Objekt speichern Java Basics - Anfänger-Themen 9
U Warum kann ich, auf private Variablen zugreifen, wenn ich ein Objekt in der Klasse, die private Variablen hat erstelle und dort drauf zugreifen will? Java Basics - Anfänger-Themen 7
missy72 Klassen Objekt Array NullPointerException Java Basics - Anfänger-Themen 3
J Hinzufügen eines Objektes in ein Objekt-Array Java Basics - Anfänger-Themen 62
O Warum bekommen wir nicht die Referenz vom zurückgegebenen Objekt? Java Basics - Anfänger-Themen 4
K Ein Objekt Auto kennt den Inhalt seines links und rechtsstehenden Autos, wie soll man das ermöglichen Java Basics - Anfänger-Themen 2
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
melaniemueller Fernseher als Objekt Java Basics - Anfänger-Themen 9
B Datentyp für Einzelnes Objekt oder Liste Java Basics - Anfänger-Themen 9
Nina Pohl Ein Vorgang bezog sich auf ein Objekt, das kein Socket ist Java Basics - Anfänger-Themen 6
B Objekt kopieren und sämtliche Referenzen von diesem Objekt? Java Basics - Anfänger-Themen 3
S JavaFX - Objekt an neue Stage übergeben Java Basics - Anfänger-Themen 12
T Verständnisfrage Objekt Getter Setter Java Basics - Anfänger-Themen 102
P Objekt in mehreren Methoden verwenden. Java Basics - Anfänger-Themen 3
S Aufzurufendes Objekt Java Basics - Anfänger-Themen 3
CptK Überprüfen ob übergebenes Objekt zu Generics passt Java Basics - Anfänger-Themen 2
C Konstruktor ab serialisiertem Objekt Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben