我想通过生成一个自动序列版本ID来删除某些类的一些警告。在Eclipse中,这样做很简单 - IDE可以自动生成一个并将其添加到类中。但是,我没有在NetBeans中看到这个功能。是可用的么?如果是这样,它在哪里?如果没有,是否有一个可以启用它的插件?NetBeans可以为Java类生成自动序列版本ID吗?
回答
其实我解决这个“问题”是停用我的项目配置的警告(我使用Eclipse,但我猜的NetBeans是一样的)因为恕我直言,这是一个错误的警告:没有一serialVersion是最安全的选择,因为JVM在启动时计算一个独特的启动(类似于类的哈希),同时明确地添加它,然后负责您注意当您对代码做出不兼容的更改时。因此,如果你不关心这个问题,最好避免这个值(这样它只能兼容的版本,肯定是,但有一些误报:它认为这是不兼容的,但是事实上它会),而不是把那里固定的价值,你会(可能,在我的情况下)忘记在需要时更新,导致实际的有效性错误(假消极:它认为它是兼容的,但它不是)。
除非需要与现有的序列化实例保持兼容,否则手动操作也很简单。就在这条线复制到类:
private static final long serialVersionUID = 1L;
注意,是绝对的serialVersionUID
是跨类唯一没有要求。
虽然这是一个很好的建议,但我决定忽略这个警告,因为在这个特定的项目上这不是很重要。我只是不喜欢显示的警告。 – 2009-09-03 13:48:25
在NetBeans禁用这些警告:
- 公开赛:工具 - >选项
- 公开赛:编辑 - >提示标签
- 选择语言:Java
- 个取消选中标准javac的警告 - >连载
- OK
我也不得不清除〜/的.netbeans/6.8/VAR /缓存,并重新启动Netbeans的清除从任务列表中的警告。
(对于用户是哪里问同样的问题现在)
我使用nb7.4,发现从nb6.5这个插件nb7.4
plugin
我nb7.4和工作进行了测试好。 对于servial版本ID外观在
serialVersionUID
的意思,如果你加它明确你可以不更改UID都在改变你的课,直到你有没有你的类系列化,在一些地方保存: 如果你创建A级连载它
结束然后将其存储在数据库
年底再改A级制作不与旧的A级更兼容,
当有人试图从过去A类加载序列化对象的一类新的,他可以有问题。
当您更改类A并使其与最后一个类A不兼容时,您必须更改uid,因此如果有人试图加载它,将会得到InvalidClassExceptions。
- 1. NetBeans可以自动构建Java自由格式(Ant)项目吗?
- 2. 我可以重写生成的ID吗?
- 3. 可以在Propel中删除自动生成的Peer类吗?
- 4. Eclipse可以自动生成第三方库类的接口吗?
- 5. 自动生成ID
- 6. 自动生成ID
- 7. 生成自动ID
- 8. Orbeon可以生成以前的表单版本的模式吗?
- 9. 是否可以从DTD自动生成Java类?
- 10. 自动从PHP类生成类图吗?
- 11. 插入ID(自动生成,仅列)
- 12. 自动生成关于对话版本
- 13. 从java程序动态生成java类
- 14. 我可以暂时挂起ORMLite中的自动生成的ID吗?
- 15. 将XML反序列化为自动生成的代理类
- 16. 可以将序列化的java对象转换为文本吗?
- 17. 防止ID自动生成
- 18. 生成自动ID IdGeneratorStrategy
- 19. Entity Framework 4.0自动生成的类未标记为可序列化
- 20. SEO:可以动态生成链接吗?
- 21. 学说迁移:版本控制自动生成的类
- 22. Doxygen可以与Netbeans C++集成吗?
- 23. 是否可以自动生成SSIS派生列转换?
- 24. jpa序列ID的生成
- 25. 我可以从Netbeans IDE生成CMake文件吗?
- 26. 更改NetBeans自动生成的代码
- 27. 我可以将.net程序集版本翻译成日期吗?
- 28. 我们可以停止自动递增的ID列吗?
- 29. 我可以使用Java动态生成xsd吗?
- 30. 请解释此Java Swing NetBeans自动生成的代码
这取决于你如何使用序列化。如果您将序列化跨不同JVM的类,即从一个JVM到另一个JVM,这可能会导致不兼容。 – Yishai 2009-09-03 13:19:37
看起来这种方法对我目前的项目来说效果最好,但在NetBeans中,我没有看到任何地方关闭此警告(并且有很多压制警告注释看起来很糟糕)。 – 2009-09-03 13:42:06
我能找到它... – 2009-09-03 13:47:33