什么时候一定要implement Serializable?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么时候一定要implement Serializable?相关的知识,希望对你有一定的参考价值。

现在还从来没有用过, 还是可以保存文件啊。
能说一个简单的例子是一定要用Serilizable的吗?

参考技术A Serializable接口属于支持序列化的一个接口,只有一个实现它的对象可以被序列化工具存储和回复,也就是说方便对象类的存储,复制等。Serializable接口没有定义任何成员,只用来表示一个累可以被序列化,若该类可以序列化,那么它的所有子类都可以。

下面是关于序列化的一个实例:
程序名称:SerializationDemo.java
程序主题:实现对象的序列化和反序列化
程序说明:该程序由实例化一个MyClass类的对象开始,该对象有三个实例变量,类型分别为String、int、double,是希望存储和恢复的信息。

import java.io.*;

public class SerializationDemo
public static void main(String args[])

//Object serialization
try
MyClass object1=new MyClass("Hello",-7,2.7e10);
System.out.println("object1:"+object1);
FileOutputStream fos=new FileOutputStream("serial");
ObjectOutputStream oos=new ObjectOutputStream(fos);
oos.writeObject(object1);
oos.flush();
oos.close();

catch(Exception e)
System.out.println("Exception during serialization:"+e);
System.exit(0);


//Object deserialization
try
MyClass object2;
FileInputStream fis=new FileInputStream("serial");
ObjectInputStream ois=new ObjectInputStream(fis);
object2=(MyClass)ois.readObject();
ois.close();
System.out.println("object2:"+object2);

catch(Exception e)
System.out.println("Exception during deserialization:"+e);
System.exit(0);




class MyClass implements Serializable
String s;
int i;
double d;
public MyClass(String s,int i,double d)
this.s=s;
this.i=i;
this.d=d;

public String toString()
return "s="+s+";i="+i+";d="+d;



程序运行结果:object1和object2的实例变量是一样的,输出如下:
object1:s=Hello;i=-7;d=2.7E10
object2:s=Hello;i=-7;d=2.7E10

参考资料:http://bbs.chinaunix.net/viewthread.php?tid=395684

本回答被提问者采纳

以上是关于什么时候一定要implement Serializable?的主要内容,如果未能解决你的问题,请参考以下文章

java中implements是啥意思?在啥时候使用?

LeetCode 28. Implement strStr()

什么运算符一定要重载友元函数,什么时候一定要重载为成员函数?

我什么时候应该使用java.util.Stack vs My Own Implementation? [关闭]

为啥要使用 SerializeField?

Implement strStr() LeetCode Java