Intellij idea 禁用";“未使用”;类的公共方法的警告

Intellij idea 禁用";“未使用”;类的公共方法的警告,intellij-idea,public-method,Intellij Idea,Public Method,新的intellij升级(10.5)现在显示了一个警告,即未使用为类定义的某些方法。这些方法是公开的,我计划不使用所有这些方法,因为我创建它们是为了支持预期的API。我想禁用此警告(不用于类中的公共方法)。有办法吗 禁用设置|检查|声明冗余|未使用声明代码检查。作为一个选项,您可以为您的API类创建一个自定义范围,并仅在每个API范围内禁用此检查,以便它在项目的其余部分仍然有效。这是一个旧线程,但我在这里结束的速度比我找到解决方案的速度快,因此我将继续并分享我的发现。 首先,我不确定我们使用的是

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

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

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

还有“未使用的定义myMethod” 检查员最后建议忽略这个具体问题,添加

//noinspection JSUnusedGlobalSymbols
位于此特定方法的正上方,以便以下代码不再导致此警告:

//noinspection JSUnusedGlobalSymbols
/**
 * Some public method
 * @api public
 */
MyClass.prototype.myMethod = function () {
   return null;
};
其他警告(输入错误等)似乎仍然会出现,包括未使用的局部变量和参数,因此它似乎隔离了这个特定问题。
缺点是,如果代码太多,它往往会污染您的代码…

IDEA 2016.3

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

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

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

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

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

创意14.x

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

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

在IntelliJ IDEA 14.1中,该选项似乎不存在了。

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

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

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

我刚刚单击了“suppress for statement”,webstorm预先准备了以下内容:

//noinspection JSUnusedGlobalSymbols

在最新版本中,此选项位于
设置>检查>Java>声明冗余>未使用声明>方法下
取消选中不需要的选项。

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

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


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

想想为什么IntelliJ发出信号 通常在进行重构时,所有未使用的方法/参数都应该可以安全删除(通过Intellij的安全删除操作)

IntelliJ(如Checkstyle和其他)的目的就是支持我们的干净设计。由于未使用的方法既不在内部使用(在
src/java/main
中),也不在外部测试(在
src/java/test
中),因此它们似乎已经过时了。那么,为什么不遵循“有疑问时,扔掉它”这句话呢

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

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

然后选择合适的解决方案 以下所有解决方案都有一个共同点:

  • 通过您的代码进行通信,以便每个IDE和开发人员都能理解(例如,添加一个测试以便使用)
  • 告知您的意图(例如,通过重新配置代码检查告知IntelliJ)
配置检查或禁用 如前面的各种回答所述。带有IntelliJ的代码检查设置的屏幕截图和导航提示

添加一个测试 如果为未使用的(方法、类等)添加测试,您将从3个方面受益:

  • 正确性:(先前)测试未使用的受试者(SUT)
  • 沟通:你清楚地与每个读者沟通,以及如何使用你未使用的(方法、类等)
  • 清除:现在不用的终于被使用了。因此IntelliJ的检查将不再发现并发出警告
  • 添加或标记为入口点 我多次看到这个建议:

    • 作为IntelliJ检查设置内的可选对话框选项卡
    • 作为:

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

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


    很遗憾,没有选项只对公共方法禁用此检查,而对私有方法保持启用状态。有,请参阅我的其他答案。它又消失了。看见
    //noinspection JSUnusedGlobalSymbols