Deserialisieren Sie mehrere Java-Objekte

hallo liebe kollegen,

Ich habe eine Garden-Klasse, in der ich mehrere Plant-Klassenobjekte serialisiere und deserialisiere. Die Serialisierung funktioniert, aber die Deserialisierung funktioniert nicht, wenn sie der aufrufenden Variablen in der statischen Methode von mein zugewiesen werden soll.

public void searilizePlant(ArrayList<Plant> _plants) {
    try {
        FileOutputStream fileOut = new FileOutputStream(fileName);
        ObjectOutputStream out = new ObjectOutputStream(fileOut);
        for (int i = 0; i < _plants.size(); i++) {
            out.writeObject(_plants.get(i));
        }
        out.close();
        fileOut.close();
    } catch (IOException ex) {
    }
}

Code deserialisieren:

public ArrayList<Plant> desearilizePlant() {
    ArrayList<Plant> plants = new ArrayList<Plant>();
    Plant _plant = null;
    try {
        ObjectInputStream in = new ObjectInputStream(new FileInputStream(fileName));
        Object object = in.readObject();

       // _plant = (Plant) object;


        // TODO: ITERATE OVER THE WHOLE STREAM
        while (object != null) {
            plants.add((Plant) object);
            object = in.readObject();
        }

        in.close();
    } catch (IOException i) {
        return null;
    } catch (ClassNotFoundException c) {
        System.out.println("Employee class not found");
        return null;
    }
    return plants;
}

Mein aufrufender Code:

ArrayList<Plant> plants = new ArrayList<Plant>();
plants.add(plant1);
Garden garden = new Garden();
garden.searilizePlant(plants);

// THIS IS THE PROBLEM HERE
ArrayList<Plant> dp = new ArrayList<Plant>();
dp = garden.desearilizePlant();

bearbeiten
Ich habe eine Nullzeiger-Ausnahme erhalten
Die Lösung von @NilsH funktioniert gut, danke!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage