当前位置: 首页 > 知识库问答 >
问题:

IntelliJ抑制API方法未使用的警告

邢飞雨
2023-03-14

我最近从Eclipse切换到IntelliJ IDEA,我非常喜欢检查员,发现他们用警告标记潜在错误对我非常有用。我遇到了一个我无法解决的问题:

我有一些Java项目在其他项目中用作API,因此它包含未使用的方法,标记为:unused warning

如何抑制API方法的这种情况?有没有一种方法可以替代SuppressWarnings(“unused”),因为这也会抑制关于方法内部未使用警告的警告,并且不会让读者清楚地知道此方法是为API使用而设计的,而不是仅在当前项目中使用?

共有3个答案

封烈
2023-03-14

简而言之,不,这与IntelliJ、Javac没有任何关系。如果您要求,Java编译器将生成这些。如果您的方法需要此注释,那么这将适用于整个方法。但是,如果您只希望对字段进行注释,则可以:

@SuppressWarnings("unused")
int iii = 0;

总之,方法注释将覆盖整个方法,将其放置在每个字段或指令中将覆盖该单行。

施俊哲
2023-03-14

为类编写接口。实现接口方法的方法不会标记为未使用。相反,接口中未使用的方法被标记为未使用,但在这里您可以安全地使用SuppressWarnings(“未使用”),因为您没有方法主体。您甚至可以在整个界面上方编写SuppressWarnings(“unused”)。

洪和平
2023-03-14

@Sebastian建议让您的类实现一个接口,这可能是从良好的设计角度解决此问题的最佳方法。但当这是不切实际的,有一个替代方案。。。

“未使用的声明”检查允许您配置要忽略的“入口点”(即公共外部API)。作为其中的一部分,您可以配置“注释”。任何用配置的注释注释的东西都被视为切入点。

只需将检查配置为使用注释来注释公共API方法,或者来自库——例如@API Guardian(由某些开源项目使用,例如JUnit 5)——或者您创建的注释。使用库当然会使跨项目的事情变得更容易和一致。在下面的示例中,我使用了我创建的@PublicApi注释。请注意,该方法并未突出显示为未使用。但foo字符串仍然突出显示为未使用,这就是您想要的:

 类似资料:
  • 我想抑制一些方法的Sonar lint插件警告,这个问题不是我想要的Intellij SonarLint 2.3-忽略规则。 目前,我必须用SuppressWarnings(“all”)对该方法进行注释,这将抑制所有警告。

  • 我看到了许多在API上使用弃用注释的示例,以便将它们标记为“需要尽快更换”。 然而,在几乎所有这些情况下,代码开发人员不仅继续使用弃用的API,而且还抑制了弃用警告。 API开发人员的最佳意图似乎最终会创建更多与已实现的业务逻辑无关的代码——如果API已弃用但不断使用并抑制相关警告,则看起来充其量是代码的退化,并且在最坏的情况下替换弃用的库时是潜在的应用程序断点IMHO。 这个问题有没有切实可行的

  • 问题内容: 当我运行程序时,Pandas每次都会发出如下“未来警告”。 我得到了味精,但我只是想一次又一次地停止Pandas显示此类味精,是否可以设置任何buildin参数以使Pandas不会弹出“未来警告”? 问题答案: 在github上发现了这个…

  • 问题内容: 当我编译时,javac输出: 我希望取消这个警告。尝试-Xlint:none似乎无济于事。 问题答案: 根据我在文档中所知道的,您无法在命令行上执行此操作。 根据文档,-Xlint:none仅禁用“ Java语言规范未强制执行”的警告。似乎警告您使用不推荐使用的API是由语言规范管理的。 最好的选择是修复不建议使用的API的使用。但是,一种选择是将注释添加到使用不推荐使用的API的类或

  • 问题内容: 每次我都会收到警告: 抑制它的最佳方法是什么?所有软件包都是最新的。 Conf: OSX带有Brew Python 2.7.10(默认,2015年7月13日,12:05:58),pandas == 0.17.0和matplotlib == 1.5.0 问题答案: 您可以禁止所有警告:

  • 我最近开始尝试llvm的< code>clang-tidy工具。现在我正试图抑制来自第三方库代码的错误警告。为此,我想使用命令行选项