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

时间:2011-05-29 06:50:21

标签: intellij-idea public-method

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

10 个答案:

答案 0 :(得分:50)

您可以针对像这样的单一方法禁用它

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

答案 1 :(得分:43)

IDEA 2016.3

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

enter image description here

<强>&LT; IDEA 14.0

  

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

     

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

     

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

Source

我刚刚使用IDEA 13.1.4进行了测试,它完全按照描述进行了测试。

IDEA 14.x

在IntelliJ IDEA 14.0.x中,设置位于:

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

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

答案 2 :(得分:38)

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

答案 3 :(得分:4)

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

答案 4 :(得分:3)

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

答案 5 :(得分:3)

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

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

enter image description here

答案 6 :(得分:1)

这是一个老线程,但我最终比我找到解决方案更快,所以我将继续分享我的发现。 首先,我不确定我们是否使用相同的语言(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;
};

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

答案 7 :(得分:0)

我只是点击了“抑制语句”,webstorm就是这样的:

//noinspection JSUnusedGlobalSymbols

答案 8 :(得分:0)

最近扩展图书馆时,我还收到“未使用”检查警告。

思考为什么IntelliJ发信号

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

这样,IntelliJ(例如Checkstyle等)的意图就是支持我们的简洁设计。由于未使用的方法既未在内部(在src/java/main中使用,也未在外部进行测试(在src/java/test中使用),所以它们似乎已过时。那么为什么不遵循“如果有疑问,就扔掉”这句话。

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

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

然后选择合适的解决方案

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

  • 与您的代码进行通讯,以便每个IDE和开发人员都能理解(例如,添加测试以使其使用)
  • 说明您的意图(例如,通过重新配置代码检查到IntelliJ)

配置检查或禁用

如先前的各种答案所述。带有IntelliJ 代码检查设置

的屏幕截图和导航提示

添加测试

如果为未使用的(方法,类等)添加测试,则将通过以下三种方式受益:

  1. 正确性:(以前)未使用的被测对象(SUT)已测试
  2. 交流:您清楚地与每个读者交流, 如何应使用未使用的(方法,类等)
  3. 清除:现在未使用的东西终于被使用了。因此IntelliJ的检查将不再找到并发出警告。

添加或标记为入口点

我多次看到了该建议:

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

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

答案 9 :(得分:0)

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