实现Serializable接口到底什么用啊?
下面是个书上的小例子,如果没有实现Serializable和实现了有什么区别么?
附小程序:
import java.io.*;
import java.util.*;
class ObjectFileTest
{
public static void main(String[] args)
{
Manager boss = new Manager( "Carl Cracker ", 80000, 1987, 12, 15);
boss.setBonus(5000);
Employee[] staff = new Employee[3];
staff[0] = boss;
staff[1] = new Employee( "Harry Hacker ", 50000, 1989, 10, 1);
staff[2] = new Employee( "Tony Tester ", 40000, 1990, 3, 15);
try
{
// save all employee records to the file employee.dat
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream( "employee.dat "));
out.writeObject(staff);
out.close();
// retrieve all records into a new array
ObjectInputStream in = new ObjectInputStream(new FileInputStream( "employee.dat "));
Employee[] newStaff = (Employee[]) in.readObject();
in.close();
// print the newly read employee records
for (Employee e : newStaff)
System.out.println(e);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
class Employee implements Serializable
{
public Employee() {}
public Employee(String n, double s, int year, int month, int day)
{
name = n;
salary = s;
GregorianCalendar calendar = new GregorianCalendar(year, month - 1, day);