2016-01-29 14 views
5

In der Codebasis, an der ich arbeite, werden fast alle Variablen, die static final String deklariert sind, auch deklariert.Wie wirkt sich der statische finale Transient in Java aus?

So habe ich Felder wie:

public static final transient String VERSION = "1.0"; 

bin ich versucht, diese transient Schlüsselwörter zu entfernen, wenn ich sie vor Ort, weil ich denke, dass es keinen Zweck dient.

Gibt es einen Unterschied im Verhalten zwischen transient oder nicht in diesem Fall?

+1

Ich nehme an, dass Sie sich besonders auf die Kombination mit "final" beziehen, so dass http://stackoverflow.com/questions/4565653/java-static-transient-fields kein vernünftiges Duplikat sein würde, oder? –

+0

Bitte schauen Sie hier :) [transiente Variablen] (http://stackoverflow.com/questions/910374/why-does-java-have-transient-variables) - Ruthi Ruth –

+0

Wer nutzt die Serialisierung überhaupt? Entfernen Sie alle Transienten! :) – ZhongYu

Antwort

5

Ein static Feld ist implizit transient (wenn ein Feld static serialisiert wird, wird sein Wert trotzdem verloren gehen). In der Tat, keine Notwendigkeit, beides zu deklarieren.

+0

Wäre toll, wenn Sie eine Quelle hinzufügen könnten, aber es sieht aus wie es ist die richtige Antwort sowieso. – wvdz

+2

Wenn Sie sagen, dass der Wert verloren gegangen ist, ist das Feld Teil der Serialisierung ohne einen Wert (z. B. null) oder wird das Feld nie als Eigenschaft angezeigt? –

1

Das Schlüsselwort transient für eine Variable stellt sicher, dass die Variable beim Serialisieren nicht Teil des serialisierten Objekts ist. Wenn Ihre Klasse nicht serializable oder eine JPA-Entität ist (die das transient-Schlüsselwort verwendet, um das Speichern von Variablen in der Datenbank zu vermeiden), sollte das Entfernen der Klasse in Ordnung sein.

+0

Die meisten dieser Klassen implementieren Serializable – wvdz

+0

Ok, wie die anderen Antwortzustände, statische Mitglieder sind sowieso nicht serialisiert. http://stackoverflow.com/questions/11000975/are-static-variables-serialized-in-serialization-process – Tobb