我重写了方法readObject/writeObject
以便自定义我的对象的序列化。问题是这些方法没有任何参数。无论如何传递这些方法的参数,所以我可以在我的序列化过程中使用它们?Java:在readObject/writeObject方法上传递参数
预先感谢您
我重写了方法readObject/writeObject
以便自定义我的对象的序列化。问题是这些方法没有任何参数。无论如何传递这些方法的参数,所以我可以在我的序列化过程中使用它们?Java:在readObject/writeObject方法上传递参数
预先感谢您
没有没有选项来传递参数,而且为什么你需要做的。序列化,序列化是编写和读取对象状态的过程,因此在序列化或反序列化之前,您的类应该具有其中的所有属性。
应该没有任何理由将参数传递给这两种方法。
您不能更改读取/写入方法的签名。绕过它的一种方法是将序列化参数设置并存储在对象中,并在读/写方法中使用它们。
或者你可以创建一个静态类,比如SerializationParameter,并在那里存储你的序列化参数。由于它们是静态的,因此您不必在每个序列化对象的内存中复制它们。
这些参数如何通过?当调用'objectOutputStream.writeObject(foo)'时,不能给出参数。这个问题没有多大意义。 –
这些方法用于序列化应该可以访问的对象的状态。为什么你想通过参数?如果需要一些信息来定制序列化,那么它应该是对象状态的一部分 –
您期望什么样的参数?序列化对象只需要该对象。如果你想自定义序列化,你需要以不同的方式实现它。 – Marc