この質問は、ObjectInputStream と、一時的として宣言されたフィールドを構築する方法に関するものです。ObjectInputStream の単純なユースケースを検討する
FileInputStream fis = new FileInputStream("t.tmp");
ObjectInputStream ois = new ObjectInputStream(fis);
SomeClass sc = (SomeClass) ois.readObject();
SomeClass の場所
class SomeClass {
int x;
transient OtherClass y;
}
class OtherClass {
int z;
}
ois.readObject の後の sc.y の値はどうなりますか?
docs.oracle.comで読んだ内容を明確にするよう求めています。
「一時的または静的として宣言されたフィールドは、逆シリアル化プロセスによって無視されます。他のオブジェクトへの参照により、必要に応じてそれらのオブジェクトがストリームから読み取られます。」
一時的なフィールドが無視されるとはどういう意味ですか? そして、それらが一時的なものである場合、ストリームからどのように読み取ることができますか(つまり、シリアル化されていない-どのように理解していますか...)
マティアス