如何获取 IntelliJ 警告的 @SuppressWarnings 警告名称?
How to get the @SuppressWarnings warning name for an IntelliJ warning?
IntelliJ 错误地告诉我字段初始值设定项是多余的,但实际上 Lombok 的 @Builder.Default
.
使用了它
我想使用 @SuppressWarnings
来抑制这个警告,但我不知道这个警告叫什么(alt-enter 也没有给我抑制的选项)。我如何在 IntelliJ 中找到警告的名称?
将光标放在警告上并按 Alt+Enter,应该会打开一个菜单。在此菜单中,应该有一个选项可以删除该字段。导航到此选项并按 →。这将打开一个子菜单,其中包含用于抑制警告的选项。通过这样做,IntelliJ 将生成适当的注释。
在您的情况下,注释可能应该是 @SuppressWarnings("unused")
或 @SuppressWarnings("UnusedAssignment")
。
这里好像还有一个如何抑制未使用的方法或成员,就是添加注解@SuppressWarnings("unused")
。或者,如果你想抑制一个局部变量,那么你必须插入一行注释 // noinspection unused
,比如
// noinspection unused
long int i = 0;
为了回答您 "How can I find a warning's name in Intellij?" 的问题,我找到了 James Roper 的网页,其中列出了所有 Intellij 警告关键字以及简短定义。
https://jazzy.id.au/2008/10/30/list_of_suppresswarnings_arguments.html
比如我要找的那个是
Redundant local variable = UnnecessaryLocalVariable
Roper 页面中的列表仅包含 JetBrains 发明的特殊警告。您需要的警告 "unused" 已经存在了很长时间并且 pre-dates 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
这仍然没有将我们引向 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/unboxing 操作相关的警告
- cast = 抑制与强制转换操作相关的警告
- dep-ann = 抑制与弃用注释相关的警告
- 弃用 = 抑制与弃用相关的警告
- fallthrough = 抑制与 switch 语句中缺少中断相关的警告
- finally = 禁止相对于 finally 阻止但不 return
的警告
- 隐藏 = 抑制与隐藏变量的局部相关的警告
- incomplete-switch = 抑制与 switch 语句中缺失条目相关的警告(枚举大小写)
- javadoc = 抑制与 javadoc 警告相关的警告
- nls = 抑制与 non-nls 字符串文字相关的警告
- null = 抑制与 null 分析相关的警告
- rawtypes = 抑制与使用原始类型有关的警告
- resource = 禁止与使用 Closeable 类型的资源相关的警告
- restriction = 抑制与使用不鼓励或禁止的引用有关的警告
- serial = 抑制与可序列化的缺少 serialVersionUID 字段相关的警告 class
- static-access = 抑制与不正确的静态访问相关的警告
- static-method = 抑制与可以声明为静态的方法相关的警告
- super = 抑制与覆盖没有超级调用的方法相关的警告
- synthetic-access = 抑制与来自内部 classes
的未优化访问相关的警告
- sync-override = 在重写同步方法时抑制由于缺少同步而产生的警告
- unchecked = 抑制与未检查操作相关的警告
- unqualified-field-access = 抑制与不合格字段访问相关的警告
- unused = 抑制与未使用代码和死代码相关的警告
IntelliJ 错误地告诉我字段初始值设定项是多余的,但实际上 Lombok 的 @Builder.Default
.
我想使用 @SuppressWarnings
来抑制这个警告,但我不知道这个警告叫什么(alt-enter 也没有给我抑制的选项)。我如何在 IntelliJ 中找到警告的名称?
将光标放在警告上并按 Alt+Enter,应该会打开一个菜单。在此菜单中,应该有一个选项可以删除该字段。导航到此选项并按 →。这将打开一个子菜单,其中包含用于抑制警告的选项。通过这样做,IntelliJ 将生成适当的注释。
在您的情况下,注释可能应该是 @SuppressWarnings("unused")
或 @SuppressWarnings("UnusedAssignment")
。
这里好像还有一个@SuppressWarnings("unused")
。或者,如果你想抑制一个局部变量,那么你必须插入一行注释 // noinspection unused
,比如
// noinspection unused
long int i = 0;
为了回答您 "How can I find a warning's name in Intellij?" 的问题,我找到了 James Roper 的网页,其中列出了所有 Intellij 警告关键字以及简短定义。 https://jazzy.id.au/2008/10/30/list_of_suppresswarnings_arguments.html
比如我要找的那个是
Redundant local variable = UnnecessaryLocalVariable
Roper 页面中的列表仅包含 JetBrains 发明的特殊警告。您需要的警告 "unused" 已经存在了很长时间并且 pre-dates 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
这仍然没有将我们引向 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/unboxing 操作相关的警告
- cast = 抑制与强制转换操作相关的警告
- dep-ann = 抑制与弃用注释相关的警告
- 弃用 = 抑制与弃用相关的警告
- fallthrough = 抑制与 switch 语句中缺少中断相关的警告
- finally = 禁止相对于 finally 阻止但不 return 的警告
- 隐藏 = 抑制与隐藏变量的局部相关的警告
- incomplete-switch = 抑制与 switch 语句中缺失条目相关的警告(枚举大小写)
- javadoc = 抑制与 javadoc 警告相关的警告
- nls = 抑制与 non-nls 字符串文字相关的警告
- null = 抑制与 null 分析相关的警告
- rawtypes = 抑制与使用原始类型有关的警告
- resource = 禁止与使用 Closeable 类型的资源相关的警告
- restriction = 抑制与使用不鼓励或禁止的引用有关的警告
- serial = 抑制与可序列化的缺少 serialVersionUID 字段相关的警告 class
- static-access = 抑制与不正确的静态访问相关的警告
- static-method = 抑制与可以声明为静态的方法相关的警告
- super = 抑制与覆盖没有超级调用的方法相关的警告
- synthetic-access = 抑制与来自内部 classes 的未优化访问相关的警告
- sync-override = 在重写同步方法时抑制由于缺少同步而产生的警告
- unchecked = 抑制与未检查操作相关的警告
- unqualified-field-access = 抑制与不合格字段访问相关的警告
- unused = 抑制与未使用代码和死代码相关的警告