eclipse使用中遇到的小问题

author: scruffybear

release time: 30/10/2006

company: Watchdata

如有转载,请注明出处,并保持文章的完整性,谢谢!

  eclipse功能果然很强大,使用起来确实很方便,碰到的两个小问题,顺利解决,记录如下:

使用eclipse时由于安装了多个JDK版本出现的问题

   我在头一天使用eclipse编译我的工程时,还很顺利,结果第二天过来打开工程再编译时却出现了以下错误:

  The project was not built since its build path is incomplete. Cannot find the class file for java.lang.Object. Fix the buildpath then try building this project

  ToolkitException cannot be resolved to a type,

  可是ToolkitException.class明明是在同一个目录下的啊,为什么会出现找不到相应的类的这个错误呢?在baidu上搜索后才发现,原来我曾经安装过两个JDK版本,一个是JDK1.3.2,另一个是JDK1.4.2,本来Eclipse在建立工程时,会自动参照你所设置的jre路径,但多个版本就沒办法了。

  解决办法只能手动建立:
  进入window/preferences/java/Installed JREs
   1)按Add
   2)输入JRE Name, 例J2SDK1.4.2
   3)JRE home directory, 选择安装的路径,我的路径是:C:/j2sdk1.4.2/jre
   4)按OK
 这时候eclipse进行了自动编译。成功!:-)


eclipse产生的以下警告问题:

  The serializable class XXX does not declare a static final serialVersionUID field of type long

  可序列化的类 ToolkitConstants未声明类型为 long 的静态终态 serialVersionUID 字段

  serialVersionUID作用:
  序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。

  你可以随便写一个,在Eclipse中它替你生成一个,有两种生成方式:
  一个是默认的1L,比如:private static final long serialVersionUID = 1L;
  一个是根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段,比如:private static final long serialVersionUID = -8940196742313994740L;之类的。

  当你一个类实现了Serializable接口,如果没有定义serialVersionUID,Eclipse会提供这个提示功能告诉你去定义之。

  在Eclipse中点击类中warning的图标一下,Eclipse就会自动给定两种生成的方式,如上面所述。如果不想定义它,在Eclipse的设置中也可以把它关掉的,设置如下:
  Window ==> Preferences ==> Java ==> Compiler ==> Error/Warnings ==> Potential programming problems
  将Serializable class without serialVersionUID的warning改成ignore即可。

  如果你没有考虑到兼容性问题时,就把它关掉,不过有这个功能是好的,只要任何类别实现了Serializable这个接口的话,如果没有加入serialVersionUID,Eclipse都会给你warning提示,这个serialVersionUID为了让该类别Serializable向后兼容。

  如果你的类Serialized存到硬盘上面后,可是后来你却更改了类别的field(增加或减少或改名),当你Deserialize时,就会出现Exception的,这样就会造成不兼容性的问题。

  但当serialVersionUID相同时,它就会将不一样的field以type的预设值Deserialize,这个可以避开不兼容性的问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值