2016-03-19 14 views
0

Ich habe gelesen, dass in statischen Feld Java nicht serialisiert sind. Ich weiß, dass statische Felder Felder auf Klassenebene sind. Aber was ist der Grund in Java, dass statische Felder nicht serialisiert werden können? Wenn ich ein serialisiertes statisches Feld haben möchte, wie kann ich es serialisieren? Beliebige AntwortWarum statische Felder nicht serialisiert sind

+1

Serialisierung ist eine Sache, die mit Objekten passiert. Zu Instanzen. Statische Felder sind keinem Objekt oder einer Instanz zugeordnet. (Darüber hinaus ist jeder statische Zustand, der serialisiert werden müsste, selbst eine Sünde.) –

+0

*** Wenn ich ein serialisiertes statisches Feld haben möchte, wie kann ich es serialisieren? *** Warum würden Sie das tun wollen? statische Daten können immer für Sie verfügbar sein, sobald Sie Zugriff auf die Klasse haben. –

+0

@Xoce nicht, wenn es statische veränderbare Zustand ist (Argumente, dass das eine schreckliche Idee nicht ist) –

Antwort

1

Als Werte auf Klassenebene sind sie für alle Instanzen dieser Klasse "global".

Also was wäre der "richtige" Wert beim Deserialisieren mehrerer Instanzen einer solchen Klasse? Es kann nur eine Instanz solcher Werte geben. So sind statische Felder mit der Klasse verknüpft und werden serialisiert und deserialisiert mit der Klasse selbst, nicht mit den verschiedenen Instanzen.

+0

Ja, ich denke, es sollte so sein, aber wie können Sie die Klasse selbst serialisieren? –

+0

Ich möchte nur wissen, warum statische Feld ist nicht serialisierbar und ich fand eine Erklärung auf http://stackoverflow.com/questions/1008023/how-to-serialize-static-data-members-of-a-java-Klasse. Danke euch allen! –

Verwandte Themen