我喜欢在使用 xstream 读取 bean 后使用 bean-validation 来验证它。
我尝试实现readObject(),但是这样我必须自己完成整个反序列化,这绝对不是我想要的。
反序列化后是否有调用的方法可以重写?
最佳答案
你的方法是好的,你只是错过了一些小事情。
如果您希望进行默认序列化,您可以像使用标准 Java 序列化 API 一样重写 readResolve 方法
(方法private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException
)并在该方法中调用in.defaultReadObject();
。
之后,您可以调用验证方法,或者初始化 transient 字段,或者在反序列化后执行您想要的任何操作。
XStream FAQ 上对此也有更详细的解释。 .
关于java - XStream:反序列化后如何进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23163648/