类实现序列化时的serialVersionUID的作用

来源:互联网 发布:汉仪字体下载包 mac 编辑:程序博客网 时间:2024/05/20 20:47

看了这位大哥的总结有点收获,在此感谢!
实现序列化接口的该类,就是为了保证两个过程的结果版本一致性,即序列化时的类和反序列化出的类版本一致!

servialVersionUID的用途

<span style="font-family:Microsoft YaHei;">/** * 序列化类   *  类似于A端 * */public class Person implements Serializable {private static final long serialVersionUID=123456770L;private String id;private String name;private int age= 23;Person(){}Person(String id ,String name){this.id=id;this.name=name;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Person [id=" + id + ", name=" + name + "]";}}</span>
<span style="font-family:Microsoft YaHei;"></span>
<pre name="code" class="java"><span style="font-family:Microsoft YaHei;">//序列化public class SerialTest {public static void main(String[] args) {Person p = new Person("one","feng");try {FileOutputStream fos = new FileOutputStream("info.txt");    ObjectOutputStream oos = new ObjectOutputStream(fos);oos.writeObject(p);oos.flush();oos.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}</span>

<span style="font-family:Microsoft YaHei;">//反序列化public class DeSerialTest {public static void main(String[] args) {Person p = new Person();try {FileInputStream fis = new FileInputStream("info.txt");ObjectInputStream ois = new ObjectInputStream(fis);p = (Person)ois.readObject();ois.close();System.out.println(p.getAge());} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}}}</span>




0 0
原创粉丝点击