对类的公共方法禁用“未使用”警告


Answers:


63

您可以为这样的单个方法禁用它

@SuppressWarnings("unused")
public void myMethod(){...}

3
完善!我不想为我的新代码发出警告,只是希望它关闭一些可能会通过“ Spring-etti”片段“反映”的旧代码。
Roboprog

9
您需要告诉Intellij,代码Intellij可以使用PUBLIC方法,这有点愚蠢……
Florian F

真的很伤心。我发现Intellij非常令人讨厌。我想他们的意图很好,但是我发现自己在编码时正在与之抗争。右侧滚动条充满了错误的标志警告,而不是实际的问题警告。
TatiOverflow

@TatiOverflow:通过右键单击右栏并选择“自定义突出显示级别”,您可以完全删除检查。
Erk

它似乎已重命名为@Suppress("unused")。此外,可以在右键单击->禁用此行的检查中找到它。
聚{

52

理念2016.3

在即将发布的版本IDEA 2016.3(已经提供预览版)中,现在可以调整检查范围:

在此处输入图片说明

<想法14.0

如果要突出显示未使用的公共方法,请启用“设置|检查|声明冗余|未使用的声明”全局检查。

如果要突出显示未使用的私有方法,请启用“设置|检查|声明冗余|未使用符号”本地检查。

因此,如果要突出显示未使用的私有成员,但不要突出显示未使用的公共成员,请关闭“未使用的声明”,然后打开“未使用的符号”。

资源

我刚刚使用IDEA 13.1.4对其进行了测试,并且它完全按照描述的那样工作。

IDEA 14.x

在IntelliJ IDEA 14.0.x中,设置如下:

Settings | Editor | Inspections | Declaration redundancy | Unused symbol/declaration

在IntelliJ IDEA 14.1中,该选项似乎消失了。


这似乎是“未使用符号”检查已经在IDEA 14
植信

完全没有,它在之下Settings | Editor | Inspections | Declaration redundancy | Unused symbol。如果找不到,请Unused symbol在设置对话框中输入搜索框。
Darek Kay 2015年

我已经尝试过了。我在IDEA EAP 141.814.3中。这是屏幕截图-imgur.com/cfOa48M
trustin 2015年

2
您是对的,在14.0.3中它仍然存在。现在我找不到它或任何其他选择。
Darek Kay 2015年

1
提交了一个问题报告,我们应该投票解决,以便JetBrains修复此问题-youtrack.jetbrains.com/issue/IDEA-148321
trustin

39

禁用Settings| Inspections| Declaration redundancy| 未使用的声明代码检查。作为一种选择,您可以为您的API类创建自定义范围,并仅针对每个API范围禁用此检查,以便它仍可在项目的其余部分中使用。


31
太糟糕了,无法选择仅对公共方法禁用此检查,而对私有方法保持启用状态。
CarlG 2014年

2
有,请参阅我的其他答案。
Darek Kay 2014年

1
它又消失了。请参阅@DarekKay答案下的评论。
Mark Jeronimus'8

7

2018-2019

这是2019年的更新:IntelliJ IDEA 2018.3.2(Community Edition)内部版本#IC-183.4886.37,建于2018年12月17日

设置| 编辑器 检验| 声明冗余| 未使用的声明

在此处输入图片说明


是否需要具有专业版才能获得所有这些选项?因为我没有它们,所以我只有“未使用的声明”。也许是因为我正在从事一个普通的项目……但仍然如此。
Zangdar

这是因为我当时正在从事一个常规项目,它们在Java中
Zangdar

IMO更好的方法是将类标记为“入口点”。
Tanya Jivvca

6

我认为,避免突出显示未使用的公共方法的最佳方法是在API中为这些方法编写一些测试。


5

在最新版本中,此选项位于Settings>Inspections>Java>Declaration redundancy>Unused declaration>Methods取消选中的非必需选项下。


2

这是一个老话题,但是我到这里的速度比我找到解决方案的速度快,因此我将继续分享我的发现。首先,我不确定我们是否使用相同的语言(此处使用JS),但不喜欢基于GUI的工具,这就是我最终得到的结果。以下代码给了我臭名昭著的“未使用”警告:

/**
 * @class sample class
 */
var MyClass = function () {
    return this;
};

/**
 * Some public method
 * @api public
 */
MyClass.prototype.myMethod = function () {
    return null;
};

出现“未使用的定义myMethod”。检查员最终建议通过添加以下内容来忽略此特定问题

//noinspection JSUnusedGlobalSymbols

在此特定方法之上,因此以下代码不再导致此警告:

//noinspection JSUnusedGlobalSymbols
/**
 * Some public method
 * @api public
 */
MyClass.prototype.myMethod = function () {
   return null;
};

其他警告(典型错误等)似乎仍然出现,包括未使用的局部变量和参数,因此似乎可以隔离此特定问题。缺点是,如果有很多代码,它往往会污染您的代码...


1
究竟。当Intellij的开发人员可以简单地解决此问题时,这就是代码污染。无论如何,对此有什么新想法吗?
TatiOverflow

注意:您可以使用“显示意图动作”对话框>“禁止陈述”,让phpstorm自动添加“ // noinspection JSUnusedGlobalSymbols”。我可以使用键盘快捷键alt + enter来访问它,具体取决于您的键映射。
kosinix

1

我只单击了“禁止发表声明”,然后Webstorm对此进行了前缀:

//noinspection JSUnusedGlobalSymbols
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.