通过序列化来判断一个对象是否已经更改
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则对象有属性值发生变化
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则对象有属性值发生变化
相关文章推荐
- 如何判断一个C++对象是否在堆栈上(通过VirtualQuery这个API来获取堆栈的起始地址,然后就可以得到答案了),附许多精彩评论
- 如何判断一个C++对象是否在堆上(通过GetProcessHeaps取得所有堆,然后与对象地址比较即可),附许多精彩评论
- 判断一个对象是否实现序列化
- JavaScript中判断一个对象是否为"空对象”
- 【Android】Adroid开发之判断一个自己的apk是否已经签名
- 判断一个对象是否为list对象
- js判断一个对象是否存在
- 通过递归判断一个整形数组是否按升序排列(java实现)
- python基础===isinstance() 函数,判断一个对象是否是一个已知的类型
- .Net判断一个对象是否为数值类型
- Java判断一个对象是否是数组
- Java判断一个对象是否是数组
- Java判断一个对象是否是数组
- .Net判断一个对象是否为数值类型探讨总结(高营养含量,含最终代码及跑分)
- 判断页面一个对象是否存在
- 判断一个对象是否为jquery对象的方法
- 判断一个已经安装的应用程序是否可以移动到SD卡中,是不是在代码中获得Manifest中的installLocation
- 用jquery判断一个对象是否存在不能用
- 如何判断一个js对象是否一个DOM对象
- 判断一个对象是否为真 __nonzero__ 方法和 __len__方法