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

时间:2017-12-24 09:33:58

标签: java intellij-idea compiler-warnings lombok suppress-warnings

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

我想使用@SuppressWarnings来抑制此警告,但我不知道警告的内容(alt-enter也让我无法抑制)。如何在IntelliJ中找到警告的名称?

2 个答案:

答案 0 :(得分:3)

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

在您的情况下,注释应该与@SuppressWarnings("unused")@SuppressWarnings("UnusedAssignment")一致。

答案 1 :(得分:0)

这里似乎还有另一个answer,用于介绍如何取消未使用的方法或成员,即添加注释@SuppressWarnings("unused")。或者,如果要抑制局部变量,则必须插入行注释// noinspection unused,例如

// noinspection unused
long int i = 0;

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

例如,我所追求的是

  

冗余局部变量=不必要的LocalVariable

罗珀(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

那仍然不能使我们进入unusedunused警告来自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类型资源的警告
  • restriction =禁止显示有关使用沮丧或禁止引用的警告
  • serial =禁止显示有关缺少可序列化类的serialVersionUID字段的警告
  • static-access =禁止显示有关错误静态访问的警告
  • static-method =禁止显示可能声明为静态方法的警告
  • super =禁止显示有关在没有超级调用的情况下覆盖方法的警告
  • synthetic-access =禁止显示有关内部类未优化访问的警告
  • sync-override =由于重写同步方法时缺少同步而禁止显示警告
  • unchecked =禁止显示有关未选中操作的警告
  • unqualified-field-access =禁止显示与不合格字段访问有关的警告
  • unused =禁止显示有关未使用代码和无效代码的警告