正常情况下,一个类实现java序列化很简单,只需要implements Serializable接口即可,之后该类在跨jvm 的传输过程中会遵照默认java序列化规则序列化和反序列化;不同jvm 版本之间序列化方式稍有不同,但基本上都是兼容的。在某些特殊情况下,可能需要自定义序列化和反序列化的行为,看下面例子:
Java代码
class AbstractSerializeDemo {
private int x , y;
public void init(int x , int y) {
this.x = x;
this.y = y;
}
public int getX () {
return x;
}
public int getY () {
return y;
}
public void printXY () {
System.out.println("x:" + x + " ;y :" + y );
}
}
public class SerializeDemo extends AbstractSerializeDemo implements
Serializable {
private int z ;
public SerializeDemo() {
super.init(10, 50 );
z = 100 ;
}
public void printZ() {
super.printXY ();
System.out.println("z:" + z );
}
public static void main (String[] args ) throws IOException , ClassNotFoundException
{
ByteArrayOutputStream bos = new ByteArrayOutputStream ();
ObjectOutputStream out = new ObjectOutputStream (bos );
SerializeDemo sd = new SerializeDemo();
sd.printZ ();
out.writeObject (sd);
ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream
(bos.toByteArray ()));
SerializeDemo sd2 = (SerializeDemo ) in.readObject();
sd2.printZ();
}
}
① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;
② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。