Das Schlüsselwort transient
in einer Java-Klasse hat eine spezielle Funktion: Es markiert eine Variable so, dass sie nicht serialisiert wird.
Die Konzepte der Serialisierung und der transienten Variablen können auf den ersten Blick etwas verwirrend sein, vor allem für Anfänger in der Programmierung. Hier ist also eine detailliertere Erklärung:
In Java bezeichnet Serialisierung den Prozess, in dem der Zustand eines Objekts in eine Bytefolge konvertiert wird, um beispielsweise das Objekt in einer Datei zu speichern oder über ein Netzwerk zu senden. Später kann die Bytefolge verwendet werden, um das Objekt in seinem ursprünglichen Zustand wiederherzustellen - ein Prozess, der als Deserialisierung bekannt ist.
Nun ist es aber so, dass nicht alle Variablen eines Objekts für den Serialisierungsprozess geeignet sind. In solchen Fällen kommt das Schlüsselwort transient
ins Spiel: Wenn eine Variable als transient deklariert wird, wird sie vom Java-Serialisierungsmotor ignoriert und nicht in die serialisierte Ausgabe aufgenommen.
Das sieht in der Praxis dann etwa so aus:
public class MeineKlasse implements Serializable {
private int erstellId;
private transient String sensDaten;
// Rest des Codes...
}
In diesem Beispiel wird die Variable sensDaten
beim Serialisieren des MeineKlasse
-Objekts nicht berücksichtigt.
transient
verwendet werden?Das Schlüsselwort transient
sollte verwendet werden, wenn:
NotSerializableException
stoßen.Zusammenfassend lässt sich sagen, das Schlüsselwort transient
in Java bietet eine wichtige Möglichkeit zur Steuerung der Serialisierung und sollte entsprechend den Anforderungen und Einschränkungen Ihrer Anwendung klug eingesetzt werden.