当前位置:主页 > 系统教程 >

serialversionuid怎么生成?serialversionuid生成办法及作用解析

发布日期:2017-03-28      作者:win8系统之家      来源:http://www.win8jihuo.com

serialversionuid怎么生成?serialversionuid生成办法及作用解析

serialVersionUid用作serializable类中的版本控件。如果你没有显式声明serialVersionUid,JVM将根据你的serializable类的各个方面自动为你执行此操作,那么serialVersionUid怎么生成?在程序开发的过程中经常需要把类序列化,不过在类系列化之前需要生成一个serialVersionUid,你们可以通过三种办法得到serialVersionUid,全部过程请看下文。

serialversionuid如何生成?serialversionuid生成方法及作用解析

serialVersionUid适用于java序列化机制。容易来说,JAVA序列化的机制是通过判断类的serialVersionUid来验证的版本一致的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUid于本地相应实体类的serialVersionUid进行比较。如果相同说明是一致的,可以进行反序列化,否则会出现反序列化版本一致的异常,即是invalidCastException。
 

生成serialVersionUid之前需要序列化类

1、这里我用的是MyEclipse工具,先打开MyEclipse,然后点击导航上面的【File】菜单,然后选择new,在点击Java project,来新建个尝试工程,如下图所示。

serialversionuid如何生成?serialversionuid生成方法及作用解析

2、新建好工程后,选中新建的工程名称,然后点击鼠标右键,选择【new】,然后在右侧选择点击Class,来创建生成serialVersionUid的类,如下图所示。

serialversionuid如何生成?serialversionuid生成方法及作用解析

3、新建的类一定要实现serializable这个序列化类,只有继续这个类后,才能生成serialVersionUid。继承后,在你们的开发工具里就会有黄色提醒,代码如下:

import java.io.serializable;
public class serialVersionUid implements serializable {
private string name = "jingyan";
public string getname() {
return name;
}
public void setname(string name) {
this.name = name;
}
}

 

serialversionuid如何生成?serialversionuid生成方法及作用解析

一、生成默认的serialVersionUid

1、在上面创建好继承序列化接口的类后,你们直接点击左侧的黄色亮点,然后在弹出菜单里,点击【Add default serial version id】这个选项,就可以自动生成serialVersionUid了,如下图所示。

serialversionuid如何生成?serialversionuid生成方法及作用解析

2、点击后,开发工具就会给你们自动生成了serialVersionUid。

private static final long serialVersionUid = 1L;
 

注意:这个自动生成后的1L是不能自己修改的。

serialversionuid如何生成?serialversionuid生成方法及作用解析

二、生成串行serialVersionUid

1、这种办法也是直接点击左侧的黄色亮点,然后在弹出菜单里,点击【Add generated serial version id】这个选项,就可以自动生成serialVersionUid了,如下图所示。

serialversionuid如何生成?serialversionuid生成方法及作用解析

2、点击后,开发工具就会给你们自动生成了一个serialVersionUid。

private static final long serialVersionUid = 551038328261036049153L;

注意:这个自动生成后的一窜数字是不能自己修改的。

serialversionuid如何生成?serialversionuid生成方法及作用解析

三、注解生成serialVersionUid

这种办法也很容易,也是直接点击左侧的黄色亮点,然后在弹出菜单里,点击【Add @suppresswarnings serial to serialVersionUid】这个选项,这样就可以了,如下图所示。

serialversionuid如何生成?serialversionuid生成方法及作用解析

点击后,开发工具就会并没有给你们像上面一样生成一窜数字,而是在类名上面加了个@suppresswarnings(“serial”)。这样就实现了serialVersionUid,如下图所示。

serialversionuid如何生成?serialversionuid生成方法及作用解析

sUn强烈建议开发人员声明serialVersionUid以避免上面列出的不同JVM问题,但我建议你应该知道什么是序列化,serialVersionUid怎么实现版本控制以及你的类需要使用序列化的原因。知道serialVersionUid概念优于任何推选的盲目。