【发布时间】:2011-09-04 05:05:11
【问题描述】:
新的 intellij 升级 (10.5) 现在显示警告,指出为类定义的某些方法未使用。这些方法是公开的,我计划不使用所有方法,因为我创建它们是为了支持预期的 API。我想禁用此警告(不用于类中的公共方法)。有没有办法做到这一点?
【问题讨论】:
标签: intellij-idea public-method
新的 intellij 升级 (10.5) 现在显示警告,指出为类定义的某些方法未使用。这些方法是公开的,我计划不使用所有方法,因为我创建它们是为了支持预期的 API。我想禁用此警告(不用于类中的公共方法)。有没有办法做到这一点?
【问题讨论】:
标签: intellij-idea public-method
禁用Settings | Inspections | Declaration redundancy | 未使用的声明代码检查。作为一个选项,您可以为您的 API 类创建一个自定义范围,并仅针对每个 API 范围禁用此检查,以便它在项目的其余部分仍然有效。
【讨论】:
这是一个旧线程,但我最终到达这里的速度比我找到解决方案的速度要快,所以我将继续分享我的发现。 首先,我不确定我们是否使用相同的语言(此处为 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;
};
其他警告(拼写错误等)似乎仍然出现,包括未使用的局部变量和参数,因此它似乎隔离了这个特定问题。 缺点是如果你有很多代码,它往往会污染你的代码......
【讨论】:
IDEA 2016.3
在即将发布的版本IDEA 2016.3(已提供预览版)中,现在可以调整检查范围:
如果要突出显示未使用的公共方法,请启用“设置|检查|声明冗余|未使用的声明”全局检查。
如果要突出显示未使用的私有方法,请启用“设置|检查|声明冗余|未使用符号”本地检查。
因此,如果您想突出显示未使用的私有成员,但不突出未使用的公共成员,请关闭“未使用的声明”并打开“未使用的符号”。
我刚刚使用 IDEA 13.1.4 对其进行了测试,它的工作方式与描述的完全一样。
IDEA 14.x
在 IntelliJ IDEA 14.0.x 中,设置位于:
Settings | Editor | Inspections | Declaration redundancy | Unused symbol/declaration
在 IntelliJ IDEA 14.1 中,该选项似乎消失了..
【讨论】:
Settings | Editor | Inspections | Declaration redundancy | Unused symbol 下。如果找不到,请在设置对话框的搜索框中输入Unused symbol。
您可以为这样的单个方法禁用它
@SuppressWarnings("unused")
public void myMethod(){...}
【讨论】:
@Suppress("unused")。此外,它可以在右键单击 -> 禁用此行的检查中找到。
我认为避免突出显示未使用的公共方法的最佳方法是在您的 API 中为这些方法编写几个测试。
【讨论】:
我刚刚点击了“禁止声明”,webstorm 在前面加上了这个:
//noinspection JSUnusedGlobalSymbols
【讨论】:
在最新版本中,此选项在Settings>Inspections>Java>Declaration redundancy>Unused declaration>Methods 下,取消选中不需要的选项。
【讨论】:
【讨论】:
最近在扩展库时,我也收到了“未使用”检查警告。
通常在重构所有未使用方法/参数时应该可以安全地删除(通过Intellij的安全删除操作)。
IntelliJ(如 Checkstyle 等)的意图是支持我们的简洁设计。由于未使用的方法既没有在内部使用(在src/java/main)也没有在外部测试(在src/java/test),它们似乎已经过时了。那么,为什么不遵循“有疑问,就扔掉它”这句话。
在重构时,这主要是一个真正的建议。 但是,如果我们正在开发一个旨在供其他代码库(来自外部的模块/依赖项)使用的库/API,那么我们宁愿回答“不使用时会感到困惑”。
我们对 IntelliJ 的警告感到惊讶。不应删除这些方法,因为它们实际上打算在其他地方使用。它们是入口点。
以下所有解决方案都有一个共同点:
如各种早期答案中所述。带有 IntelliJ 代码检查设置的屏幕截图和导航提示
如果您为未使用的(方法、类等)添加测试,您将受益于 3 种方式:
我多次看到这个建议:
IMO 更好的方法是将类标记为“入口点”。 – Tanya Jivvca 8 月 18 日 8:46
将元素添加为入口点。默认情况下,全局范围以及测试中的所有代码都被视为可达。如果您知道执行了某个方法或函数,则可以将其添加为入口点。入口点内的代码现在也已执行并可访问。 当您添加入口点时,您的源代码文件不受影响,并且元素的记录与项目一起存储在
.idea\misc.xml下。
【讨论】:
也许entry points 功能可以工作,您可以在其中指定可以禁用警告的代码模式Settings | Inspections | Declaration redundancy | Unused Declaration | entry point
【讨论】: