您的位置:首页 > 其它

通过序列化来判断一个对象是否已经更改

2009-05-20 16:54 417 查看
import java.io.Serializable;
public class SerializableModel implements Serializable {
public String modelattr1;
public String modelattr2;
public String modelattr3;
}

首先创建一个可序列化的测试对象SerializableModel

然后通过下面的方法对其进行是否更改的测试

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

public class SerializableTest {

public static void main(String args[]){
SerializableModel sm=new SerializableModel();
sm.modelattr1="attr1";
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ByteArrayOutputStream baos2 = new ByteArrayOutputStream();
try {
ObjectOutputStream oos= new ObjectOutputStream(baos);
oos.writeObject(sm);
byte[] bytes1 =baos.toByteArray();
sm.modelattr2 ="attr2";
ObjectOutputStream oos2= new ObjectOutputStream(baos2);
oos2.writeObject(sm);
byte[] bytes2 =baos2.toByteArray();
String str1=new String(bytes1);
String str2=new String(bytes2);
if(str1.compareTo(str2)==0){
System.out.println("equals");
}else{
System.out.println("not equals");
}
} catch (IOException e) {
e.printStackTrace();
}

}
}

如果输出equals则对象没有更改,如果输出not equals则对象有属性值发生变化
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: