在java中,如何检查方法m是否改变了其接收者的状态

sna*_*ile 1 java serialization

我正在尝试编写一个接收可序列化对象(实现Serializable)o和方法m的方法.该方法应该在调用m之前和调用m之后比较o的状态,并告诉调用m是否改变了o.它应检查表示o的位是否在方法之后被更改.我可以这样做吗?

Bob*_*oss 5

如果你查看jguru,你会看到一个有用的例子:

围绕ByteArrayOutputStream包装ObjectOutputStream.然后将对象序列化为ObjectOutputStream将该对象存储在字节数组中:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(myObject);
Run Code Online (Sandbox Code Playgroud)

要恢复此对象,请反转该过程:

ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
ObjectInputStream ois = new ObjectInputStream(bais); 
Object myObject = ois.readObject();
Run Code Online (Sandbox Code Playgroud)

如果在调用方法之前和之后比较结果字节数组,您将能够检测对象是否受到影响.