我对某事感到困惑,希望你能澄清一下。
我想调试反序列化任务。 我有:
我正在读取该类的一个流,除了字段之外它还可以工作:
f
现在我的一般情况是: 我不能在类的getter和setter中有一些断点来查看readObject()期间会发生什么吗? 。在我的情况下,它似乎不会在readObject()期间通过我的setter,因为我的断点被忽略。
所以我的一般问题是。 readobject任务是否会调用类的setter?
答案 0 :(得分:0)
不,标准Java序列化永远不会调用getter或setter(甚至不是构造函数,除了第一个非可序列化的超类)。
除非您通过编写自己的私有readObject
方法(或实施Externalizable
)来控制,否则ObjectInputStream
只会读取字段(static
和{{1}除外)使用不安全的魔法和反射。