这个问题是关于 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上读到的内容
“反序列化过程会忽略声明为瞬态或静态的字段。对其他对象的引用会导致根据需要从流中读取这些对象。”
瞬态字段被忽略是什么意思?如果它们是瞬态的,如何从流中读取它们(即未序列化 - 我如何理解它......)
马蒂亚斯