请教个序列化的问题
LGYAN 2017-03-25 10:13:23 序列化前是相等的,序列化后不相等,如何解决?
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class Test implements Serializable{
private static final long serialVersionUID = 1L;
private TestValue t=TestValue.INSTANCE;
//判断是否相等
public void equals(){
System.out.println(t==TestValue.INSTANCE);
}
public static void main(String[] args) {
Test t=new Test();
t.equals();//此时是相等的
try {
Serialize(t);
Test bTest=Deserialize();
bTest.equals();//反序列化后,不相等????
} catch (Exception e) {
e.printStackTrace();
}
}
private static void Serialize(Test o ) throws FileNotFoundException, IOException {
ObjectOutputStream oo = new ObjectOutputStream(new FileOutputStream(new File("DataObject.txt")));
oo.writeObject(o);
oo.close();
}
private static Test Deserialize() throws Exception, IOException {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new File("DataObject.txt")));
Test object = (Test) ois.readObject();
ois.close();
return object;
}
}
import java.io.Serializable;
public class TestValue implements Serializable {
private static final long serialVersionUID = 1L;
public static final TestValue INSTANCE = new TestValue();
public static final TestValue EMPTY = new TestValue();
private TestValue(){
}
}