去掉 Eclipse 生成的 serialVersionUID 上面的注释
Posted
技术标签:
【中文标题】去掉 Eclipse 生成的 serialVersionUID 上面的注释【英文标题】:Getting rid of the comment above Eclipse-generated serialVersionUID 【发布时间】:2014-03-05 01:29:22 【问题描述】:这已成为我最讨厌的事情。我写了一个类,并实现Serializible
。然后eclipse警告我我没有serialVersionUID
,所以我选择“添加生成的serialVersionUID”或“添加默认serialVersionUID”,我最终得到类似这个:
/**
*
*/
private static final long serialVersionUID = 4049849541314027178L;
大多数时候我不想添加评论,所以我必须去删除评论。我宁愿默认没有评论,但我已经查看了首选项中的代码模板,还没有想出如何更改它。我只是希望它看起来像这样:
private static final long serialVersionUID = 4049849541314027178L;
【问题讨论】:
也一直想知道怎么做 从“看起来唯一的选择是关闭所有自动生成的字段的 cmets。”,答案是 否。我创建了How to prevent the auto-generation of comments just for quick-fixing the serialVersionUID warning? 来解决这个问题。 【参考方案1】:它对任何 eclipse 生成的字段使用模板。
你可以改变它
Preferences ->
Java ->
Code Style ->
Code Templates ->
Comments ->
Fields
...全局或每个项目。
【讨论】:
是的,但它会删除每个生成字段上方的自动生成的 cmets。我想在这里我们只想摆脱这个具体字段上方的自动生成的评论。 谢谢,尽管正如@wawek 指出的那样,看起来唯一的选择是关闭所有自动生成字段的 cmets。不过,这还不错。 支持,因为 serialVersionUID 是我定期生成的唯一字段。 我已经扩展了您的回答并引用了您的解决方案。我解释说这个 SerialVersionID 注释的自动生成只是一个特例。通常这一代会在你生成元素注释时运行,但重要的事实是它会在你快速修复串行警告时自动运行【参考方案2】:为了进一步解释第一个答案,serialVersionUID
的自动生成的 cmets 只是一个适用于所有字段的评论模板生成,包括这个。当您从工具栏的 Source 部分为该字段生成元素注释 (Alt+Shift+J) 时,它就会运行。
重要的事实是,当您快速修复时,字段 cmets 的生成也会自动运行
可序列化类
[ClassName]
没有声明long 类型的静态最终serialVersionUID 字段
为所有字段禁用/更改生成的 cmets
您可以通过在执行原始回答者@slim 回答的内容后单击编辑和空白评论来阻止为所有字段生成cmets,如
Toolbar -> Window -> Preferences -> Java -> Code Style -> Code Templates -> Comments -> Fields
在快速修复 serializable 警告后,请注意评论不再自动生成。
为SerialVersionUID
禁用/更改评论的自动生成
不幸的是,没有选项可以防止通过快速修复为SerialVersionUID
自动生成 cmets,而无需为所有字段清空评论生成模板。在 Preferences 中搜索“Comment”或“Serial”时没有这样的选项。
幸运的是,这并不重要,因为对于其他字段,它仅在您为该字段生成元素注释时生成。您还可以更喜欢手动注释或 Javadoc 字段。
示例
此代码摘录(仅显示字段)显示有关序列化的警告。
public class SomePanel extends JPanel
private String name;
/* ... */
您快速修复此警告,并生成 name
字段的元素注释。如果不清空模板,你会得到这个,这是你不想要的 serialVersionUID
:
public class SomePanel extends JPanel
/**
*
*/
private static final long serialVersionUID = -5173652620102412871L;
/**
*
*/
private String name;
/* ... */
在为字段注释生成模板清空后,您会得到预期的结果:
public class SomePanel extends JPanel
private static final long serialVersionUID = 1L;
private String name;
/* ... */
【讨论】:
以上是关于去掉 Eclipse 生成的 serialVersionUID 上面的注释的主要内容,如果未能解决你的问题,请参考以下文章