【发布时间】:2016-10-23 13:32:06
【问题描述】:
我对某事感到困惑,希望您能澄清一下。
我想调试一个反序列化任务。 我有:
- 实现 java.io.Serializable 的类
- 类有setter和getter。
-
我正在从该类中读取一个流,除了字段之外它可以工作:
ois = new ObjectInputStream(bos); o=ois.readObject();
现在我的一般问题: 我不能在类的 getter 和 setter 中设置一些断点来查看在 readObject() 期间会发生什么吗? .就我而言,它似乎不会在 readObject() 期间通过我的设置器,因为我的断点被忽略了。
所以我的一般问题是。 readobject 任务是否调用类的设置器?
【问题讨论】:
-
不,它没有。以下是反序列化的工作原理:docs.oracle.com/javase/8/docs/platform/serialization/spec/…
-
你有提示吗,当我在反序列化后的字段中得到错误的值时,我该如何调试进程?
-
在序列化之前检查该字段的真实情况。这就是问题所在。
标签: java deserialization