我有被建模爲這樣的代碼:XStream的不會調用的readObject()
class A {
private transient Foo foo = new Foo();
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
in.defaultReadObject();
foo = new Foo();
}
}
class B extends A {}
我反序列化過程中加入的readObject()A,使得,瞬態foo
將被初始化。但是,我在代碼中插入了斷點,可以看到XStream根本不調用readObject()。我也嘗試在類B中使用readObject()方法,它在A中調用initFoo()函數,但這也不起作用。
網站上的FAQ似乎並不意味着任何其他樣板文件對於此工作都是必需的。爲什麼不被稱爲?
我不認爲XStream使用Java的序列化框架 - 我想這些方法只有在使用ObjectOutput/InputStream時纔會使用。 –
XStream確實使用Java序列化規範。 http://xstream.codehaus.org/faq.html#Serialization_initialize_transient – eipark
我站好了。 –