【问题标题】:IntelliJ IDE disable 'is never used' inspection [duplicate]IntelliJ IDE禁用“从未使用”检查[重复]
【发布时间】:2018-01-26 20:23:20
【问题描述】:

我扩展 MessageCracker 类并覆盖方法(处理程序)

public void onMessage(ExecutionReport execRep, SessionID sessionID)
...
public void onMessage(BusinessMessageReject message, SessionID sessionID)
...
public void onMessage(Quote quote, SessionID sessionID)

每个方法捕获消息都扩展Message - ExecutionReport、BusinessMessageReject、Quote 等。

一切正常,但 IntellijIDE 说这种方法 - Method 'onMessage(quickfix.fix44.Quote, quickfix.SessionID)' is never used

我该如何解决?

【问题讨论】:

  • 接口/父级或子类上是否出现“从未使用”消息?
  • 如果这些方法也以某种方式注释,您可以通过 Alt+Enter 和相关的附加操作通过该注释抑制此警告(请参阅stackoverflow.com/questions/5283972/… 的答案)

标签: java intellij-idea handler


【解决方案1】:

IntelliJ 告诉您类上的公共方法未使用。这不是错误,只是一条信息消息。

您可以将其视为一个温和的提示:通过编写一个公共方法,您暗示某些东西应该使用该方法,但 IntelliJ 无法找到该方法的任何用法,因此它会警告您以防万一 (a)方法范围应该缩小,或者 (b) 您忘记编写用于调用此方法的代码。

您可以通过Preferences > Editor > Inspections > Unused Declaration 开启/关闭此行为

您还可以通过使用 @SuppressWarnings("unused") 注释特定方法来禁用对特定方法的此检查。

【讨论】:

  • 有些方法并没有真正使用,我想查看有关它们的信息。但是这些方法没有被显式调用而是被使用。他们接收消息。
  • 根据 IntelliJ 的“未使用声明”检查,这些方法未使用。如果您不同意 IntelliJ 的检查,则可以禁用它,请参阅Preferences > Editor > Inspections > Unused Declaration。但是,这只是一条信息消息,并不表示错误,因此您也可以忽略它。
  • 我明白了。也许有一个注释或一种方法来标记像处理程序一样工作的方法
  • 这个方法可以加上@SuppressWarnings("unused")注解。
  • 或 (c) 这些是项目外部可见的 api 的一部分,具体取决于您的 lib。再说一次,如果你为这些编写测试,警告就会消失。我遇到的问题是,每次我尝试提交某些内容时,我都会收到“您在此文件中有 7 个警告……您确定要提交吗?”由于未使用的方法警告,可能会出现一个我没有注意到的有效警告。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-17
  • 2011-04-25
  • 2021-01-11
  • 1970-01-01
  • 1970-01-01
  • 2015-06-03
相关资源
最近更新 更多