`

Eclipse的一个Warning

    博客分类:
  • Java
阅读更多
"The serializable class MySwingDemo does not declare a static final serialVersionUID field of type long."查了些资料处理了下,特记录下,以备后用.
serialVersionUID用来作为标示Java对象序列化中的版本之用;
我如果在一个序列化类里没有声明这样一个static final的产量,JVM会根据各种参数为这个类计算一个;对于同样一个类,不同版本的JDK可能会得出不同的serivalVersionUID;
serialVersionUID在版本升级时反序列化仍保持该对象的唯一性。
在Eclipse中它替你生成一个,有两种生成方式:
一个是默认的1L,比如:private static final long serialVersionUID = 1L;
一个是根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段,比如:private static final long serialVersionUID = -8940196742313994740L;之类的。
当你一个类实现了Serializable接口,如果没有定义serialVersionUID,Eclipse就会提示这个Warning。 点击类中warning的图标,Eclipse就会提供自动给定两种生成的方式。也可以把它关掉的: Window ==> Preferences ==> Java ==> Compiler ==> Error/Warnings ==> Potential programming problems
将Serializable class without serialVersionUID的warning改成ignore即可。
如果你的类Serialized存到硬盘上面后,可是后来你却更改了类别的field(增加或减少或改名),当你Deserialize时,就会出现Exception的,这样就会造成不兼容性的问题。
但当serialVersionUID相同时,它就会将不一样的field以type的预设值Deserialize,这个可以避开不兼容性的问题。


分享到:
评论

相关推荐

    jd-eclipse-site-1.0.0-RC2.zip、jd-eclipse-2.0.0.zip

    JD-Eclipse is a plug-in for the Eclipse platform. It allows you to display...A warning dialog windows appear because "org.jd.ide.eclipse.plugin_x.y.z.jar" is not signed. Click on "Install anyway" button.

    Eclipse SweetAlertDialog

    【Eclipse SweetAlertDialog】是一个基于Android平台的对话框库,专为那些希望在应用程序中添加具有吸引力和用户友好性的对话框的开发者设计。SweetAlertDialog在Eclipse开发环境中使用,为传统Android开发提供了一...

    默然说话Eclipse配置

    开启"Insert single proposals automatically"可让Eclipse在只有一个选项时自动补全。 3. **代码格式化(Code Formatting)**: 在"Window" > "Preferences" > "Java" > "Code Style" > "Formatter"中,你可以...

    Eclipse不编译java文件的解决方法

    Eclipse是一款广泛使用的Java集成开发环境,但在使用过程中可能会遇到Java文件不被编译的问题,导致项目无法正常运行。以下是一些解决Eclipse不编译Java文件的方法: 1. **更改编译错误处理策略**: 在Eclipse中,...

    Eclipse中常见图标说明

    - **Compilation Unit(*.java 文件)**:表示一个Java源代码文件,通常包含一个或多个类定义。 - **Class File**:编译后的字节码文件,对应于源代码中的类。 - **File without icon assigned to its type**:...

    运行eclipse提示JVM错误的解决

    ### 运行Eclipse提示JVM错误的解决 在使用Eclipse进行开发的过程中,有时可能会遇到JVM(Java虚拟机)错误的问题。这类问题通常表现为启动Eclipse时出现错误提示,例如“jvm terminated. Exit code=-1”。本文将...

    一些与代码质量有关的eclipse插件

    它会生成一个报告,详细列出所有检测到的问题,按照严重程度进行分类,通常分为三个级别:错误(Error)、警告(Warning)和可能问题(Possible Problem)。开发者可以根据这个报告逐个修复问题,提升代码质量。 ...

    Eclipse错误解决办法

    - `Windows -> Preferences -> Java -> Compiler -> Errors/Warnings -> Deprecated and restricted API -> Forbidden reference(access rules)`,将error设置为warning。 或者 - 对于特定项目,进入`(Project) ...

    eclipse插件findbugs

    这个插件是 Eclipse 开发环境中的一个重要组成部分,因为它可以显著提高代码质量,减少bug的数量,从而提升软件的稳定性和可靠性。 FindBugs 插件的工作原理主要是通过静态分析,不实际执行代码,而是通过解析字节...

    Eclipse环境搭建教程

    Eclipse 是一个功能强大的集成开发环境(IDE),广泛应用于软件开发、测试和调试中。然而,Eclipse 环境的搭建是一个复杂的过程,需要按照正确的步骤进行安装和配置。在本文中,我们将详细介绍 Eclipse 环境的搭建...

    解决 libpng warning: iCCP: known incorrect sRGB profile

    在IT领域,尤其是在图像处理和开发中,"libpng warning: iCCP: known incorrect sRGB profile" 是一个常见的问题,特别是在使用Qt库进行图像操作时。这个问题涉及到颜色配置文件(iCCP)和标准红绿蓝(sRGB)色彩...

    eclipse findbug插件

    Eclipse FindBugs 插件是开发者在使用Eclipse IDE时的一个强大工具,它专注于静态代码分析,旨在帮助找出潜在的编程错误和坏味道。这个插件能够在代码编译后,而无需实际运行程序,就能检测出可能存在的问题,从而...

    实现Eclipse自身的log管理

    为了方便使用,我们可以创建一个公共的工具类,如`LogUtil`,提供一系列静态方法来简化日志记录。例如: ```java public class LogUtil { public static void logError(Throwable t) { logError(null, t....

    Eclipse的JS编辑器插件

    Eclipse的JS编辑器插件是开发者们在使用MyEclipse进行JavaScript开发时的一大利器,它为编写JavaScript代码提供了丰富的功能和便利性。这个插件不仅增强了Eclipse的基础编辑功能,还提供了许多针对JavaScript特性的...

    windowbuilder eclipse设置

    - **步骤**:首先,在 Eclipse 中新建一个 Java 项目。接着,在项目的 `src` 文件夹上右键点击,选择 “New” > “Other”,然后找到 “WindowBuilder” > “SWT” > “ApplicationWindow”。 ##### 2. 使用组件 - ...

    eclipse find bugs插件

    - 文件名`edu.umd.cs.findbugs.plugin.eclipse_2.0.0.20111220`表明这是FindBugs的一个早期版本,发布于2011年12月20日。随着Eclipse和Java的发展,FindBugs也经历了多次更新,以支持新的特性并改进检测算法。目前...

    eclipse插件findbugs(两个版本)

    FindBugs插件是Eclipse中的一个扩展,它可以集成到开发环境中,实时分析项目源代码,找出可能存在的错误、漏洞和性能问题。这些错误可能包括空指针异常、资源泄露、并发问题等。通过使用FindBugs,开发者可以在编写...

    Eclipse集成Log4j

    在Eclipse项目中创建一个名为`log4j.properties`的文件,这是Log4j的配置文件。例如: ```properties # 设置全局日志级别为DEBUG log4j.rootLogger=DEBUG, Console, File # 配置控制台输出 log4j.appender.Console...

Global site tag (gtag.js) - Google Analytics