`

coreJava: serialVersionUID

 
阅读更多

Eclipse会检查serialVersionUID,其实定义private static final long serialVersionUID = 1L; 就可以。

serialVersionUID只是序列化转换时的一个判别符(判别类是否改变)。

 

附件为代码。

 

public class Address implements Serializable {

	private static final long serialVersionUID = 1L;

	String street;
	String country;

	public void setStreet(String street) {
		this.street = street;
	}

	public void setCountry(String country) {
		this.country = country;
	}

	public String getStreet() {
		return this.street;
	}

	public String getCountry() {
		return this.country;
	}

	@Override
	public String toString() {
		return new StringBuffer(" Street : ").append(this.street).append(" Country : ").append(this.country).toString();
	}
}
public class WriteObject {

	public static String fileName = "f:\\address.ser";
	
	public static void main(String args[]) {

		Address address = new Address();
		address.setStreet("Xi Dan");
		address.setCountry("China");

		try {

			FileOutputStream fout = new FileOutputStream(fileName);
			ObjectOutputStream oos = new ObjectOutputStream(fout);
			oos.writeObject(address);
			oos.close();
			System.out.println("Done");

		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}
}
public class ReadObject {

	public static void main(String args[]) {

		Address address;

		try {
			File file = new File(WriteObject.fileName);
			if (!file.exists())
				WriteObject.main(null);

			FileInputStream fin = new FileInputStream(file);
			ObjectInputStream ois = new ObjectInputStream(fin);
			address = (Address) ois.readObject();
			ois.close();

			System.out.println(address);

		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}
}

 

输出结果为:Street : Xi Dan Country : China

但如果修改serialVersionUID为2L, 那么就会报错,因为serialVersionUID不同。

 

From:http://www.mkyong.com/java-best-practices/understand-the-serialversionuid/

分享到:
评论

相关推荐

    java面试大全

    ### Java面试大全:序列化、流操作、Core Java与线程安全 在Java技术领域,面试不仅是对求职者基础知识的考验,更是对其实际工作经验和技术深度的一次全面考察。本篇文章将围绕“序列化”、“流操作”、“Core Java...

    互联网高频Java后端面试题20道(适合1~3年)V1.0.94.docx

    - **Core Container**:包含了核心的IoC(控制反转)和DI(依赖注入)功能。 - **Data Access**:提供了与数据库的集成。 - **Web模块**:支持构建Web应用程序。 - **AOP模块**:实现了面向切面编程。 - **...

    cxf开发webservice实践

    private static final long serialVersionUID = -1755418011767535342L; // ... getters and setters } ``` #### 2.2 异常处理 `NotFoundException` 类是自定义异常,用于表示找不到特定用户的情况。它可以被 ...

    java定时任务代码-spring管理.txt

    private static final long serialVersionUID = 1L; @Override public void init() throws ServletException { SpringFactory.init(); } } ``` 3. **SpringFactory类**:用于初始化Spring上下文。 ```...

    SSI整合小案例

    - struts2-core-2.0.11.2.jar、struts2-spring-plugin-2.0.11.2.jar(Struts 2核心与Spring插件) - xwork-2.0.5.jar(Struts 2的核心组件之一) 3. **编写实体Bean**:为了更好地管理和操作数据库中的数据,需要...

    jsp实现文件上传以及类似百度文库在线阅读.docx

    确保项目中包含必要的Struts2库,比如struts2-core、struts2-convention-plugin等。这些库可以通过Maven或者直接下载添加到项目中。 3. **编写上传文件界面**: - 创建一个JSP页面,用于用户选择要上传的文件和...

    Struts2返回JSON对象[参考].pdf

    private static final long serialVersionUID = 1L; private int userId; private String userName; private String password; // getter and setter methods } ``` - **字段说明**: - `userId`:用户ID...

    spring-boot-mybatis-plus数据层框架

    private static final long serialVersionUID = 1L; @TableId(value = "user_id", type = IdType.AUTO) private Integer userId; private String userName; private String userPwd; @TableField(...

    struts2与spring的整合

    - `struts2-core-2.0.11.jar`:提供Struts2核心功能。 - `struts2-spring-plugin-2.0.11.jar`:用于实现Struts2与Spring的整合。 - `xwork-2.0.4.jar`:为Struts2提供底层支持。 - `freemarker-2.3.8.jar`:用于页面...

    用maven创建基于wink的rest服务(三)-携带纯文本文件的post请求

    import javax.ws.rs.core.MediaType; @Path("/textfiles") public class TextFileResource { @POST @Consumes(MediaType.TEXT_PLAIN) public String handleTextFilePost(String textContent) { // 处理接收到...

    使用@IdClass创建联合主键,并实现外部关联

    private static final long serialVersionUID = 8275037592609082750L; private String buildID; private DataCenter dataCenter; // getter and setter @Override public int hashCode() { return super....

    Android代码混淆及签名.docx编程资料

    -libraryjars libs/Core.jar -libraryjars libs/yht.BASE64Decoder.jar -dontskipnonpubliclibraryclassmembers -dontskipnonpubliclibraryclasses -optimizations !code/simplification/arithmetic,!field/*,!...

    \MyEclipse8下struts2开发例程及解析

    在MyEclipse8之前,开发者需要手动引入Struts2的jar文件,包括`struts2-core`、`xwork`、`ognl`、`freemarker`、`commons-logging`以及`commons-fileupload`等依赖库。此外,还需要编写Struts2配置文件`struts.xml`...

    struts2.3.8配置教程

    - struts2-core-2.3.8.jar - xwork-2.3.8.jar - javassist-3.11.0.GA.jar - ... * src + com - action - IndexAction.java 其中,WEB-INF文件夹中包含了web.xml文件和lib文件夹,lib文件夹中包含了...

    idfc-proguard混淆优化demo2

    5. **保持序列化兼容性**:如果实体类实现了`Serializable`接口,混淆时要确保序列化ID(`serialVersionUID`)不变,以保持序列化兼容性。 6. **测试与调试**:混淆后,应进行充分的测试,确保所有功能正常。如果遇到...

    jsp页面中获取servlet请求中的参数的办法详解.docx

    private static final long serialVersionUID = 1L; public BBSServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, ...

Global site tag (gtag.js) - Google Analytics