在IntelliJ中禁用一行警告


79

我有一条Java代码行,其中IntelliJ显示警告。如何使该特定行中的警告静音,而又不影响其他行中显示的警告?

在这个问题中,实际的警告是无关紧要的:现在,我不寻求有关如何提高特定Java代码质量的建议,但我通常想知道如何防止IntelliJ在特定Java代码上显示警告。 Java源代码行。


确实,没有足够的细节可供人们回答。什么警告 什么在线上?
Jim Garrison

有关警告的更多信息将很有帮助。警告的确存在是有原因的,通常,解决潜在的问题要比忽略警告更好。
Freiheit

8
在这个问题上,具体的警告是无关紧要的。我想大体上知道如何针对所有可能的警告禁用IntelliJ针对特定行报告的警告(除了修复我的代码)。
凯特

例如:Intellij抱怨password.replaceAll(".","*")通常是一个错误。它以为你是故意的replaceAll("\.",...)。谢谢,但是不。因此,现在我想确认并禁止该警告。我不要它闲逛。
Florian F

Answers:


80

大多数情况下,您可以在IntelliJ中单击和Alt+Enter,它将带有抑制警告的选项。


11
就我而言,它没有这样的选择。它提供了一些选项来修复警告的根本原因,但我现在不希望这样。我只是想摆脱警告。
凯特

24
@kat,您需要按右箭头键打开检查子菜单,您可以从中取消显示当前行,这将自动添加注释。
CrazyCoder 2011年

6
它现在可以按照您的工作方式(Ryan Stewart和CrazyCoder)写道:我按F2跳到下一个警告,然后按Alt-Enter查看警告,然后按向右箭头键获取解决问题的选项,然后我选择适当的“忽略...”选项。仅供参考,只要将鼠标悬停在警告线上,就会显示一个工具提示,使用它不可能摆脱警告。
凯特

3
当前的IntelliJ允许使用“分析”:“检查代码”,这将打开一个下部窗格。在右窗格的右侧,有一个方便的“ Suppress for statement”。不过,需要一个大屏幕和一个鼠标。
蒂诺2014年

53

扩展Ryan Stewart的答案,在IntelliJ中,使用Alt+Enter,然后选择第一个子菜单,然后选择最后一个项目:Suppress for statement

在此处输入图片说明

更新资料

使用IntelliJ IDEA 13,我注意到另一个菜单项:“禁止发表带有注释的陈述”。这将使用IntelliJ样式//noinspection unchecked。如果选择“禁止语句”,则IntelliJ将插入以下文本:@SuppressWarnings("unchecked")


1
谢谢。但是,这将添加// noinspection弃用而不是@SuppressWarnings(“ deprecation”)
Martin Vysny 2013年

1
@SuppressWarnings()是Java,//noinspection是JavaScript
Tino 2014年

1
@MartinVysny,如果您想@SuppressWarnings("unchecked")使用它Suppress for method代替Suppress for statement
Pith

6
是否存在// noinspection的所有有效标签的列表?
andresp 2014年

14

根据警告可以使用@SuppressWarnings。例如:

@SuppressWarnings("deprecation")
yourLineWhichIsDeprecated;

请看一下此答案,以获取可以抑制的相当长的警告列表。查看有关该主题的其他文章以了解更多详细信息。


感谢您提供背景资料,很高兴知道SuppressWarning的工作原理。但是,我正在寻找IntelliJ特定的解决方案。

该链接仅
会将

修复了链接。
Martijn Courteaux

8

在IntelliJ 15中,内联“黄色灯泡”和alt输入菜单不提供抑制1条线路的检查的功能。

运行通过菜单中的检查时,有更多的选择:Analyze -> Inspect Code...

然后在“检查”面板的右侧提供各种选项。右侧面板中的某些文本是可单击的。请注意,通常也可以使用问题解决功能(快速修复)。

在此处输入图片说明

(显然@tino在评论中已经注意到了这一点,但我第一次错过了他的评论。我将其添加为完整答案,以使我个人很想念的重要内容更容易找到。


至少一个不依赖于alt输入菜单的答案,如上所述,在某些情况下,alt输入菜单不提供“禁用检查”或“禁止...”。
米歇尔·波拉(MichaëlPolla)

1
  1. 单击下面有波浪线〰️的抱怨区域
  2. 出现灯泡💡,单击灯泡💡
  3. 选择抑制语句选项

在此处输入图片说明

4.将在当前行上方添加无检查注释 //noinspection CssInvalidPropertyValue

  1. 抱怨消失了👏

0

使用Kotlin语言和IntelliJ编译代码时,这是一个提示

这是指向github源的链接,其中编译器警告由来,并且定义了Kotlin编译器输出的默认错误消息

kotlin / compiler / frontend / src / org / jetbrains / kotlin / diagnostics / rendering / DefaultErrorMessages.java

如果编译器输出“从不使用变量“ {0}”,则它源自此行格式DefaultErrorMessages.java

MAP.put(UNUSED_VARIABLE, "Variable ''{0}'' is never used", NAME);

为了消除警告,您可以在代码中的未使用变量之前放置@Suppress()批注,如下所示:

@Suppress("UNUSED_VARIABLE")
var y: Int = 3

因此,关键,如果的IntelliJ不帮你弹出建议按Alt + Enter在突出表现是看里面DefaultErrorMessages.java如果你能找到的错误消息和关键字来剿使用@Suppress(特定警告..名字)

该主题未标记为“ Kotlin”,但至少标记为IntelliJ


0

// noinspection未选中,ConstantConditions

@SuppressWarnings并非在每个地方都有效

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.