42

いくつかの静的メソッドとフィールドを使用して、保存状態のシリアル化に取り組んでいます。シリアライゼーションと静電気が騒乱を引き起こしたと断言できました。すべてのスタティックをトランジェントにする必要がありますか? そして、呼び出しを膨らませると、静的が通常どおり復元されますか?

4

7 に答える 7

78

statics は暗黙的transientに であるため、そのように宣言する必要はありません。

シリアル化は、クラスではなくインスタンスをシリアル化するためのものです。 フィールド (メソッドはクラス定義の一部であるためシリアル化されないため、無関係です) は、クラスがロードされたときに設定された値に再初期化されます。 static

変更可能なstaticフィールドがある場合、その値に加えられた変更は失われます。

于 2011-06-21T17:33:38.363 に答える
3

staticフィールドはシリアル化では無視されます。

static私が当初意図したものではなく、言うように更新されましたtransient...

于 2011-06-21T17:32:58.133 に答える
1

staticフィールドはシリアル化されません。

于 2011-06-21T17:34:11.717 に答える
0

「クラスのインスタンスをシリアル化する場合、保存されるのは非静的および非一時的なインスタンスデータのみです。クラス定義は保存されません。オブジェクトを逆シリアル化しようとするときに使用可能である必要があります」http:// java.sun.com/developer/technicalArticles/ALT/serialization/

于 2011-06-21T17:35:17.203 に答える