NetBeans是否可以为Java类生成自动串行版本ID?

Tho*_*ens 7 java netbeans serialversionuid

我想通过生成自动序列版本ID来删除某些类的一些警告.在Eclipse中,这很简单 - IDE可以自动生成一个并将其添加到类中.但是,我在NetBeans中看不到此功能.是可用的么?如果是的话,它在哪里?如果没有,是否有可以启用它的插件?

lap*_*apo 9

实际上我对这个"问题"的解决方案是在我的项目配置中停用该警告(我使用Eclipse,但我猜对于NetBeans是相同的),因为恕我直言,这是一个错误的警告:没有 serialVersion是最安全的选择,因为JVM计算一个这在启动时是独一无二的(类似于类的哈希),同时显式添加它会使在需要对代码进行不兼容的更改时要小心更新它.

因此,如果您不关心这一点,最好避免使用该值(这样它只能兼容肯定兼容的版本,但有一些误报:它认为不兼容,但事实上它会相反)把那里的固定值(可能在我的情况下)忘记在需要时更新,导致实际有效性错误(假阴性:它认为它是兼容的但不是).

  • 这取决于您如何使用序列化.如果要将不同JVM的类序列化,即从一个JVM到另一个JVM,则可能导致不兼容. (3认同)

Koe*_*box 6

似乎开箱即用NetBeans不支持该功能,但插件可以.

请看看

链接1,链接2链接3


Mic*_*rdt 5

除非您需要与现有的序列化实例保持兼容,否则手动操作也很简单.只需将此行复制到该类中:

private static final long serialVersionUID = 1L;
Run Code Online (Sandbox Code Playgroud)

请注意,绝对不要求serialVersionUID跨类具有唯一性.