如何获取 IntelliJ 警告的 @SuppressWarnings 警告名称?

14 java intellij-idea compiler-warnings suppress-warnings lombok

IntelliJ 错误地告诉我字段初始值设定项是多余的,但实际上 Lombok 的@Builder.Default.

我想使用抑制此警告,@SuppressWarnings但我不知道警告是什么(alt-enter 也没有给我抑制的选项)。如何在 IntelliJ 中找到警告的名称?

Syn*_*ync 10

通过将光标放在警告上并按Alt+ Enter,它应该会打开一个菜单。在这个菜单中,应该有一个删除字段的选项。导航到此选项并按?。这会打开一个子菜单,其中包含取消警告的选项。通过这样做,IntelliJ 将生成适当的注释。

在您的情况下,注释可能应该沿着@SuppressWarnings("unused")@SuppressWarnings("UnusedAssignment")


Kir*_*rby 6

看起来这里还有另一个关于如何抑制未使用的方法或成员的答案@SuppressWarnings("unused"),那就是添加注释。或者,如果您想抑制局部变量,那么您必须插入行注释// noinspection unused,例如

// noinspection unused
long int i = 0;
Run Code Online (Sandbox Code Playgroud)

为了回答您的问题“如何在 Intellij 中找到警告名称?”,我找到了 James Roper 的一个网页,其中列出了所有 Intellij 警告关键字以及简短的定义。 https://jazzy.id.au/2008/10/30/list_of_suppresswarnings_arguments.html

例如,我所追求的是

冗余局部变量 = UnnecessaryLocalVariable

Roper 页面中的列表仅涵盖 JetBrains 发明的特殊警告。您需要的警告“未使用”已经存在很长时间并且早于 IntelliJ。有些是java编译器的一部分。对于 javac 警告列表,我从https://javarevisited.blogspot.com/2015/09/what-is-suppresswarnings-annotation-in-java-unchecked-raw-serial.html发现您可以运行 javac -X. 对于Java 1.8,我发现

all,auxiliaryclass,cast,classfile,deprecation,dep-ann,divzero,empty,fallthrough,finally,options,overloads,overrides,path,processing,rawtypes,serial,static,try,unchecked,varargs
Run Code Online (Sandbox Code Playgroud)

但这仍然没有引导我们unused。该unused警告来自 Eclipse,也受 Intellij 支持。有关 Eclipse 警告列表,请参阅https://help.eclipse.org/kepler/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftask-suppress_warnings.htm

该页面包含

  • all = 抑制所有警告
  • boxing = 抑制与装箱/拆箱操作相关的警告
  • cast = 抑制与强制转换操作相关的警告
  • dep-ann = 抑制与已弃用注释相关的警告
  • deprecation = 抑制与弃用相关的警告
  • Fallthrough = 抑制与 switch 语句中缺少中断相关的警告
  • finally = 抑制与不返回的finally 块相关的警告
  • hide = 抑制与隐藏变量的局部变量相关的警告
  • incomplete-switch = 抑制与 switch 语句中缺少条目相关的警告(枚举情况)
  • javadoc = 抑制与 javadoc 警告相关的警告
  • nls = 抑制与非 nls 字符串文字相关的警告
  • null = 抑制与 null 分析相关的警告
  • rawtypes = 抑制与原始类型的使用相关的警告
  • Resource = 抑制与 Closeable 类型资源的使用相关的警告
  • 限制 = 抑制与使用不鼓励或禁止的引用相关的警告
  • Serial=抑制与可序列化类缺少serialVersionUID字段相关的警告
  • static-access = 抑制与不正确的静态访问相关的警告
  • static-method = 抑制与可以声明为静态的方法相关的警告
  • super = 抑制与覆盖没有 super 调用的方法相关的警告
  • 合成访问 = 抑制与来自内部类的未优化访问相关的警告
  • sync-override = 抑制由于覆盖同步方法时缺少同步而出现的警告
  • unchecked = 抑制与未检查操作相关的警告
  • unqualified-field-access = 抑制与不合格字段访问相关的警告
  • used = 抑制与未使用代码和死代码相关的警告