Unten ist mein Beispielcode:Java Serialisierung - Objekt modifiziert nach Objekt Schreiben in Datei
public class Hybrid {
public static void main(String[] args) {
Cultivate cultivate1 = new Cultivate();
try{
ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream("myfile"));
os.writeObject(cultivate1);
os.close();
System.out.println("line 1 : "+ ++cultivate1.z+" ");
ObjectInputStream is = new ObjectInputStream(new FileInputStream("myfile"));
Cultivate cultivate2 = (Cultivate)is.readObject();
is.close();
System.out.println("line 2 : "+cultivate1.y+" "+cultivate2.z);
} catch(Exception x){
System.out.println("exc");
}
}
}
class Cultivate implements Serializable{
transient int y=3;
static int z = 6;
}
und hier ist die Ausgabe:
line 1 : 7
line 2 : 3 7
Kann jemand erklären, warum cultivate2.z druckt 7? Der Wert für cultivate1.z wird nach dem Schließen des Ausgabestreams erhöht. Wie spiegelt sich diese Änderung bei der Desialisierung wider?