enumとシリアライゼーションに関してたくさんのトゥルーリアがありますが、私はこの記事を太陽で読むこともできますが、シリアル化する方法を見つけることはできません。なぜenumはjavaで別々にシリアライズ可能なのですか
列挙型定数は、通常の直列化可能または外部化可能オブジェクトとは異なる方法で直列化されます。列挙型定数の直列化形式は、その名前だけで構成されます。定数のフィールド値はフォームにはありません。列挙型定数を直列化するために、ObjectOutputStreamは、列挙型定数のnameメソッドによって返された値を書き込みます。 enum定数を直列化復元するために、ObjectInputStreamはストリームから定数名を読み取ります。デシリアライズされた定数は、java.lang.Enum.valueOfメソッドを呼び出して、定数のenum型と受信した定数名を引数として渡すことによって取得されます。
任意の例が理解できるであろう。
あなたの問題は何ですか?あなたは何も追加せずに列挙型を直列化することができます、あなたはそれが動作していないことを試しましたか? – EsotericVoid
@Bit上記のように、 "Enum定数は異なる順序で直列化されています"という意味です。違いは何ですかb/w通常のシリアル化とenum。 – shiv
ここでは実際の質問は "どのようにenumがJavaで直列化されていますか?"です。回答の種類はhttps://stackoverflow.com/a/15522276/6768966で見つけることができます。 「私は太陽の下で記事を読むが、それをシリアル化する方法は見つけられない」一部は誤解を招いている、それはあなたがどのように、なぜそうではないかのように見える。 – EsotericVoid