2017-02-06 3 views
-3

Ich möchte verstehen, dass eine Klasse instanziieren (in meinem Fall Logger) als statisch wird es nichtWarum serialisieren wir die Java-Klasse und deklarieren eine Variable statisch wird sie nicht serialisieren?

+0

Keine Ahnung, was Sie fragen. Wenn Sie sicherstellen möchten, dass ein Feld nicht serialisiert ist, verwenden Sie das Schlüsselwort * transient *. – GhostCat

+3

Wenn Sie eine Instanz einer Klasse serialisieren, wird das statische Feld nicht serialisiert, da es nicht Teil der Instanz ist. Sprichst du darüber? – khelwood

+0

'statische' Felder sind nicht Teil der Instanz. –

Antwort

0

Serialisierung Wenn Sie eine Klasse als Serializable markieren, können Sie die Java-Runtime fordern die Objekt oder Instanz serialisiert Ihrer Klasse. Dies hilft beim Konvertieren der Daten in Ihrem Objekt in ein persistables Format zum Speichern oder Senden über ein Strean.

Auf der anderen Seite gehören static Mitglieder zu keiner Klasse und fallen nicht in den Bereich der Serialisierung. Daher hat die Markierung Ihrer Klasse Serializable keinen Einfluss auf die static Mitglieder Ihrer Klasse.

Wenn Sie ein Objekt deserialisieren, werden alle Mitglieder der Klasse static bereits in der anderen JVM initialisiert, wenn die Klasse geladen wird. Daher ist es nicht sinnvoll, statische Felddaten als Teil des serialisierten Objekts zu senden.

Weitere Informationen finden Sie unter this article.

Hoffe, das hilft!

Verwandte Themen