HashSets explizit als serialisierbar markieren ?

AvS

Erfahrenes Mitglied
Hi,
ist es zwingend notwendig, Objekte eines HashSets als serializable zu markieren ?

Gruß,
AvS
 

zeja

Erfahrenes Mitglied
Nein wieso?

Du solltest allerdings equals und hashCode überschreiben damit die Objekte korrekt verglichen werden können.
 

AvS

Erfahrenes Mitglied
Könntest du vielleicht mal einen Blick draufwerfen. Daran lässt sich besser erklären was ich möchte :)

Code:
public class Memory implements Serializable
//	
//	Klasse MEMORY besteht nur aus der Menge der als zur Niederlage
//                führend markierten Situationen (BannedSituations).
//	
//	In einem Spiel gibt es nur ein Gedächtnis (MEMORY), deshalb
//  werden alle Attribute (nur BannedSituations) und Operationen
//  durchgehend als static  definiert.
{
	static HashSet BannedSituations;    // Markierte Situationen
		
	static void resetMemory()
	{
		BannedSituations = new HashSet();
	}

        	static void storeMemory()
	throws IOException
	{
		// Speichern des Gedächtnis in einer Datei.
		Memory m = new Memory();
		OutputStream fos = new FileOutputStream( "memory.ser" ); 
		ObjectOutputStream o = new ObjectOutputStream( fos ); 
		o.writeObject( m ); 
		fos.close();
	}
	
	static void restoreMemory()
	throws IOException
	{
		// Laden des Gedächtnisses aus einer Datei.
		InputStream fis = new FileInputStream( "memory.ser" ); 
		ObjectInputStream o = new ObjectInputStream( fis ); 
		() o.readObject();  // ACHTUNG 
	}

Es geht um die Funktion restoreMemory(). Wie krieg ich die readObject()-Funktion ein Objekt der Klasse Memory zu deserialisieren ?