Visual Studio Code Java:禁用 serialVersionUID 警告

18

我正在上计算机科学课程,作业的样板代码是一个Java框架,其中大多数类(或其超类)都扩展了Serializable。这样做的结果是,VSCode会对我发出警告:

可序列化类[插入类名]没有声明类型为long的static final serialVersionUID字段

几乎所有起始代码都会有这个警告。我知道在其他IDE(例如IntelliJ和Eclipse)中,可以为所有Java项目禁止这个特定的警告。那么在VSCode中应该如何操作呢?我已经安装了Java语言支持包。

以下是我不能声明serialVersionUID或使用@SuppressWarnings的原因:

  1. 这将强制我修改不允许修改的代码。教授只希望学生实现框架的某些部分。

  2. 我需要对大约30个类进行这些更改,这不是理想情况。


为什么不直接声明该字段呢? :) - Veselin Davidov
为了声明这个字段,我需要为数十个类声明它,而且我不应该更改代码的那一部分。我只能更改教练要求我们更改的部分。 - Ozymandias
@AndyTurner 是的 - Ozymandias
在我看来,这个问题是完全有效的,使用内联方式:new HashMap<String, String>() {{put{"a", "b"}}} 会引发此警告,但你肯定不想要这个。 - Martin Meeser
1个回答

28

目前,VSCode对于Java的支持是通过读取名为.settings/org.eclipse.jdt.core.prefs的文件来实现Eclipse项目支持的。这个文件位于项目根文件夹中名为.settings的文件夹内,其中包含名为org.eclipse.jdt.core.prefs的文件。

在该文件中,我们可以通过添加以下行来消除serialVersionUID警告: org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore

现在只需重新启动VS Code,这些警告就不会再出现了。


8
感谢您分享您的解决方案!尽管很多人反对你所提出的“最佳实践”或者说应该做什么,但有时我们只是想知道如何去做。今后,我们可以使用Eclipse来配置首选项,并在VS Code中使用它们。 - Doug Ayers
4
用以下Shell命令添加此设置:mkdir -p .settings && touch .settings/org.eclipse.jdt.core.prefs && echo "org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore" >> .settings/org.eclipse.jdt.core.prefs - bolmaster2
有没有任何扩展可以帮助我们生成serialVersionUID? - Ryan Chou
1
重新启动似乎不再必要。 - Konrad Rudolph

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接