告诉 IntelliJ IDEA 哪些方法不被识别为未使用
Posted
技术标签:
【中文标题】告诉 IntelliJ IDEA 哪些方法不被识别为未使用【英文标题】:Telling IntelliJ IDEA which methods not to identify as unused 【发布时间】:2011-07-14 03:04:25 【问题描述】:IntelliJ IDEA 有一个方便的功能,可以检测未使用的方法并将它们显示为灰色,暗示可能对死代码发出警告。
然而,有些方法不是直接执行的,而是通过反射来执行的。一个很好的例子是由 Spring 执行的 @RequestMapping
-annotated 方法。 IntelliJ 具有不错的 Spring 集成,因此它会检测到此注释并且不会将此类方法标记为未使用。
我有一个很小的 AJAX 框架,我在其中使用自己的注释来根据某些 HTTP 请求属性指出要执行的方法(非常类似于 @RequestMapping
正在做的事情)。可以理解的是,IntelliJ 不知道我的注释代表什么,并将这种方法标记为未使用,从而增加了不必要的噪音。
我在想:
用另一个注释来注释我的注释,但是有没有任何标准的注释可以在没有任何额外工作的情况下完成这项工作? 在 IntelliJ 中找到一个特定设置来识别自定义注释以将方法标记为已使用,但这需要其他团队成员做同样的事情,基本上很痛苦。任何人都可以提出任何想法来解决这个问题吗?
【问题讨论】:
【参考方案1】:您可以告诉 IntelliJ 不要对使用“未使用”方法具有的注释进行注释的任何方法/字段发出警告。
这应该是一个快速解决方法,您只需按 +Suppress for methods annotated by ...
您无需在代码中添加任何内容,并且您只需对每个注释执行一次。
【讨论】:
不幸的是我没有这个选项,我的注释是@WebMethod
并且我使用的是 Intellij 14.1.1 。知道为什么我没有此选项可用吗?
这适用于最近的版本,就像一个魅力。 IntelliJ 确实带有一些魔力。
我不小心为“带有 xx 注释的字段”取消了此功能。要撤消此操作,请在 .idea/misc.xml
文件中找到 <component name="EntryPointsManager">
并对其进行调整(更改项目数时不要忘记更新 list
属性)
也许此操作隐藏在警告提示窗口右下角的“更多操作...”链接中【参考方案2】:
@SuppressWarnings("unused")
应该可以工作。
【讨论】:
感谢您的回答。理想情况下,我希望我的自定义注释能够自动处理这个问题,所以我不必在每个方法上添加 @SuppressWarnings("unused") 。还是您建议我应该注释我的注释(而不是方法)本身? 不,我不是在暗示这个。除了使用标准注释外,我不知道如何“告诉 IDEA 哪些方法不能识别为未使用”。 Peter 的建议很好,但需要同样多的注释。 我认为彼得的@UsedViaReflection 只是一个伪代码,它实际上可以是任何注释。这并不理想(正如我在问题中提到的那样),但我想没有其他选择。【参考方案3】:@Peter Lawrey 的解决方案在我的 Intellij (14.1.1) 版本中没有帮助。
我使用了艰难的方法:设置-编辑器->检查->未使用的声明
现在有一个选项点,向下滚动到Configure annotations...
,您可以在那里添加您的注释。
【讨论】:
【参考方案4】:在“设置”中可以“取消选中”设置-检查-声明冗余-未使用的声明代码检查。
【讨论】:
以上是关于告诉 IntelliJ IDEA 哪些方法不被识别为未使用的主要内容,如果未能解决你的问题,请参考以下文章
为啥 IntelliJ Idea 不识别 JQuery 的美元运算符?