Java 序列化检测?

Java 序列化检测?,java,serializable,Java,Serializable,我必须写些什么,以便对象知道何时进行序列化和反序列化,以便在序列化之前和反序列化之后执行某些操作?为此,可以使用readObject和writeObject方法writeObject方法 基本上,您将这样做: class MyClass implements Serializable{} 有关这些方法用法的更多信息:您希望实现什么?序列化对象在写入.ser文件时保持其状态。请您更具体地说明您的最终目标是什么。这些方法来自ObjectOutputStream和ObjectInputStream。

我必须写些什么,以便对象知道何时进行序列化和反序列化,以便在序列化之前和反序列化之后执行某些操作?

为此,可以使用
readObject
writeObject
方法<序列化对象引用时,将执行code>writeObject方法

基本上,您将这样做:

class MyClass implements Serializable{}

有关这些方法用法的更多信息:

您希望实现什么?序列化对象在写入.ser文件时保持其状态。请您更具体地说明您的最终目标是什么。这些方法来自ObjectOutputStream和ObjectInputStream。用于序列化和反序列化对象的类。但是对象本身无法检测它是否将被序列化或反序列化。@eyp
writeObject
在序列化对象时被调用。这不是一种检测我即将被序列化的方法吗(如果我是一个对象引用,并且我的类实现了
Serializable
)?Serializable.writeObject是一个私有方法,因此不能重写它来更改其行为。@eyp该方法不是
Serializable
的一部分。接口不能有
private
方法,默认情况下,接口的所有方法都是
public abstract
。您需要查看一些Java。
writeObject
readObject
是完全奇怪的野兽:从未从您自己的代码中调用的私有回调方法。这不是Java更好的设计选择之一。
public class MyClassToSerialize implements Serializable {
    private int data;
    /* ... methods ... */
    private void writeObject(ObjectOutputStream os) throws IOException {
        os.defaultWrite(); //serialization of the current serializable fields
        //add behavior here
    }
}