Java Grundkurs 3: Generische Programmierung, Datenströme, Datumsrechnung

Transiente Objektvariablen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
In diesem Video lernen Sie, wie Java beim Schreiben und Einlesen eines Objekts unterschiedlicher Klassenversionen vorgeht. Dabei erklärt Ihnen der Trainer auch, wie Sie mit dem Schlüsselwort transient dafür sorgen, dass eine Objektvariable bei der Serialisierung ausgelassen wird.

Transkript

In diesem Video lernen Sie, wie Java bei dem Schreiben und dem Einlesen eines Objektes unterschiedlicher Klassen versionen vorgeht. Dabei stelle ich Ihnen auch noch ein Schlüsselwort vor, das sich Transient nennt. Und war führt das Schlüsselwort Transient dazu, dass eine Objektvariable, bei der wir dieses Schlüsselwort anbringen, bei der Serialisierung ausgelassen wird. Aber zunächst schauen wir uns mal im praktischen Beispiel an, wie Java bei unterschiedlichen Klassenversionen vorgeht. Deshalb ändere ich die Klasse Katze mal ab und schaue mir an, was mir beim Einlesen des alten Objekts ausgegeben wird. Also, ich füge bei der Klasse Katze nun eine neue Objekt Variable hinzu. Die nenne ich name für den Namen der Katze und dann füge ich auch noch Getter und Setter hinzu. Ich habe also dann somit ein neues Attribut, das hier in der abgespeicherten Katze.dat Datei nicht berücksichtigt worden ist. Dort steht also kein Name der Katze drin. Und nun lese ich dieses Objekt ein und zwar diese Zeilen hier, die nehme ich mal raus. Mit der hatte ich ja das Objekt geschrieben. Die setze ich in den Zwischenspeicher und ich lese nun ganz einfach nur die Datei aus. Und in der Klasse App entnehme ich den kompletten Teil der mir diese Datei geschrieben hat. Das sind ja diese Klassen, bei der ich eine Katze erzeuge, die ich dann in den Ausgabestrom des ObjectOutputStream hinausschreibe. Und zwar übernehme ich diese Zeilen einfach mal in den Zwischenspeicher, über Strg+X. Also das Einzige, das ich jetzt mache ist nur eine Datei einzulesen und das darin enthaltene Objekt auszugeben. Und dabei werde ich auch noch dafür sorgen, dass mir auch der Name ausgegeben wird, der Katze. Denn meine Klasse hat ja nun auch eine weitere Objektvariable, also ein weiteres Attribut mit dem Namen Name und den kann ich ja einfach mal ausgeben. So, Ich speichere die Datei also ab und drücke auf Play. Und dann sehen Sie an dieser Stelle, dass die Objektvariable Name nun den Wert null enthält, also eine Referenz auf null. Das Besondere hierbei ist, dass das Einlesen funktioniert hat, obwohl das gespeicherte Objekt das Attribut Name überhaupt nicht kennt. Stattdessen wurde hier einfach nur die Referenz null zugewiesen. Und das hat nur funktioniert, weil wir in der Katze eben eine serialVersionUID gesetzt hatten. Und nun werde ich Ihnen auch noch das Schlüsselwort Transient vorstellen. Und zwar ist es so, dass Sie bei der Serialisierung die Möglichkeit haben, einzelne Objekt Variablen aus der Serialisierung auszuschließen. Und genau zu diesem Zweck bietet Java den Modifier Transient an. Um Ihnen das vorzuführen, setze ich den Modifier in der Klasse Katze bei der Objekt Variable Name vor, also Private Transient String name. Und jetzt wechsle ich wieder in die Klasse App und hier füge ich wieder aus dem Zwischenspeicher die Zeilen ein, die wir benötigt hatten, um das Objekt abzuspeichern. Was jetzt hier noch fehlt ist, dass ich der Katze einen Namen gebe. katze.setName(" Pinki"), wird mir den Namen auf Pinki setzen und normalerweise würde ich ja jetzt ein Objekt erzeugen, bei dem der Name Pinki gesetzt ist. Aber wir haben ja bei unserer Klasse Katze das Schlüsselwort transient als Modifier eingesetzt und deshalb wird es ausgelassen. Das heißt und deshalb würde beim Abspeichern meines Objekts die Objektvariable Name gar nicht berücksichtigt werden. Deshalb speichere ich jetzt alles mal ab und führe mein Programm aus und dann schauen wir mal passiert. Und wie Sie sehen, ist nun der Name immer noch auf null gesetzt, weil eben dieser Modifier dafür gesorgt hat, dass die Objekt variable name ausgelassen wurde. In diesem Video haben Sie gelernt, wie Java bei dem Schreiben und dem Einlesen eines Objekts unterschiedlicher Klassenversionen vorgeht. Dabei habe ich Ihnen auch noch das Schlüsselwort Transient vorgestellt, das das dafür sorgt, dass eine Objektvariable, bei der wir dieses Schlüsselwort anbringen, bei der Serialisierung ausgelassen wird.

Java Grundkurs 3: Generische Programmierung, Datenströme, Datumsrechnung

Steigen Sie tiefer in die Java-Programierung ein und lernen Sie den Umgang mit generischen Typen, Lamda-Ausdrücken, DAtenströmen und mit Datums- und Zeitberechnung.

5 Std. 24 min (47 Videos)
Derzeit sind keine Feedbacks vorhanden...
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:09.10.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!