2016-03-19 11 views
0

Java静的フィールドではシリアル化されていません。私は、静的フィールドはクラスレベルのフィールドであることを知っています。しかし、静的フィールドを直列化できないJavaの理由は何ですか?私はそれをシリアル化することができます私は静的フィールドをシリアル化したい場合は? 任意の回答なぜ静的フィールドがシリアル化されないのですか

+1

シリアライゼーションは、オブジェクトに起こることです。 Toインスタンス。静的フィールドは、オブジェクトまたはインスタンスに関連付けられていません。 (さらに、直列化する必要のある静的な状態を持つことは、それ自体が罪です。) –

+0

***直列化された静的フィールドにするにはどうしたらよいでしょうか?***なぜそれをしたいのですか? –

+0

@Xoceは静的な変更可能な状態ではありません(それはひどい考えであり、耐えられない) –

答えて

1

クラスレベルの値として、それらはそのクラスのすべてのインスタンスに対して「グローバル」です。

そのようなクラスのいくつかのインスタンスを逆シリアル化するとき、「正しい」値は何ですか?このような値のインスタンスは1つしか存在できません。したがって、静的フィールドはクラスにリンクされ、異なるインスタンスではなくクラス自体で直列化および逆直列化されます。

+0

はい、私はそれがそのようにすべきだと思いますが、クラス自体をどのように直列化できるのでしょうか? –

+0

私はちょうど静的フィールドがシリアライズ可能でない理由を知りたいと思っています。私はhttp://stackoverflow.com/questions/1008023/how-to-serialize-static-data-members-of-a-java-classに関するいくつかの説明を見つけました。皆さん、ありがとうございました! –

関連する問題