86

新的 intellij 升级 (10.5) 现在显示警告,指出为类定义的某些方法未使用。这些方法是公开的,我计划不使用所有方法,因为我创建它们是为了支持预期的 API。我想禁用此警告(不用于类中的公共方法)。有没有办法做到这一点?

4

10 回答 10

72

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

@SuppressWarnings("unused")
public void myMethod(){...}
于 2015-01-10T18:48:19.467 回答
58

创意 2016.3

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

在此处输入图像描述

< 想法 14.0

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

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

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

资源

我刚刚使用 IDEA 13.1.4 对其进行了测试,它的工作方式与描述的完全一样。

想法 14.x

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

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

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

于 2014-09-29T08:40:38.853 回答
42

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

于 2011-05-30T08:12:54.230 回答
11

2018-2019

以下是 2019 年更新:IntelliJ IDEA 2018.3.2(社区版)Build #IC-183.4886.37,于 2018 年 12 月 17 日构建

设置 | 编辑 | 检查 | 申报冗余 | 未使用的声明

在此处输入图像描述

于 2019-01-15T20:00:39.563 回答
9

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

于 2016-11-24T13:23:09.717 回答
6

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

于 2017-04-14T05:35:37.140 回答
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;
};

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

于 2014-06-19T06:39:32.190 回答
2

我刚刚点击了“禁止声明”,webstorm 在前面加上了这个:

//noinspection JSUnusedGlobalSymbols
于 2017-03-24T11:33:17.823 回答
0

也许该entry points功能可以工作,您可以在其中指定可以禁用警告的代码模式
Settings | Inspections | Declaration redundancy | Unused Declaration | entry point

于 2021-07-12T08:05:38.373 回答
0

最近在扩展库时,我也收到了“未使用”的检查警告。

想想为什么 IntelliJ 发出信号

通常在重构时,所有未使用的方法/参数都应该可以安全地删除(通过 Intellij 的安全删除操作)。

这样,IntelliJ(如 Checkstyle 等)的意图是支持我们的简洁设计。由于未使用的方法既没有在内部使用(in src/java/main)也没有在外部测试(in src/java/test),它们似乎已经过时了。那么为什么不遵循“当有疑问时,扔掉它”的说法。

在重构时,这主要是一个真正的建议。但是,如果我们正在开发一个旨在供其他代码库(来自外部的模块/依赖项)使用的库/API,那么我们宁愿回答“不使用时会感到困惑”。

我们对 IntelliJ 的警告感到惊讶。这些方法不应该被删除,因为它们实际上是打算在其他地方使用的。它们是入口点

然后选择合适的解决方案

以下所有解决方案都有一个共同点:

  • 通过您的代码进行交流,以便每个 IDE 和开发人员都能理解(例如,添加一个测试以便使用它)
  • 告诉你的意图(例如通过重新配置代码检查给 IntelliJ )

配置检查或禁用

如各种早期答案中所述。带有 IntelliJ代码检查设置的屏幕截图和导航提示

添加测试

如果您为未使用的(方法、类等)添加测试,您将通过 3 种方式受益:

  1. 正确性:(以前)未使用的被测对象(SUT)经过测试
  2. 沟通:您清楚地与每个读者沟通以及应该如何使用您未使用的(方法、类等)
  3. 清关:现在没用的终于用上了。所以 IntelliJ 的检查不会再发现和警告了。

添加或标记为入口点

我多次看到这个建议:

IMO 更好的方法是将类标记为“入口点”。– Tanya Jivvca 8 月 18 日 8:46

添加元素作为入口点。默认情况下,全局范围内的所有代码以及测试都被视为可访问的。如果您知道执行了某个方法或函数,则可以将其添加为入口点。入口点内的代码现在也已执行并可访问。添加入口点时,源代码文件不受影响,并且元素的记录与项目一起存储在.idea\misc.xml.

于 2020-12-12T10:56:50.237 回答