【问题标题】:How to disable a particular checkstyle rule for a particular line of code?如何禁用特定代码行的特定 checkstyle 规则?
【发布时间】:2011-06-20 10:59:19
【问题描述】:

是的,我看到了这个问题:

How to disable a particular checkstyle rule for a particular line of code?

但我不能发表评论,我想问是否可以按照 OP 的要求做:

如何为一行代码禁用一个特定规则

我也看到了这个: Is there a way to force Checkstyle to ignore particular warning in the source code?

我想我的问题的答案是使用 SuppressWithNearbyCommentFilter

我只是不明白我在 java 中的 cmets 应该是什么样子。

假设我有以下代码:

public class MyDataContainer {
  /** the name */
  public String name;
}

我想摆脱“可见性修饰符”警告并且那个警告。

我必须启用什么(使用 eclipse--cs.sf.net 插件)?

我的 cmets 看起来如何?

我设法启用了抑制评论过滤器并用

包围了我的整个班级
//CHECKSTYLE:OFF
//CHECKSTYLE:ON

但我不太喜欢这种解决方案。

【问题讨论】:

  • 你确定它这么重要吗?我的意思是我在 Eclipse 中的所有项目中都收到了一堆警告,即使是在发布时也是如此。如果您知道自己在做什么,为什么还要关心 Eclipse 中边缘的黄色标志?
  • @Snicolas 这很重要。获得更好的代码质量是一回事。在我们的项目中,代码约定包含 Eclipse 中的警告/错误设置,整个项目没有警告。如果您不关心这些警告,那么您将在很短的时间内获得包含数千个警告的项目,并且没有人关心添加另外 10 个警告......
  • @Snicolas:说真的?我什至很少在开发阶段提交带有警告的代码......
  • @Snicolas:真丢脸 :P 当你创建和提交一个新类时,没有任何借口允许编译器警告。没有任何借口可以在不删除编译器警告的情况下对现有类进行更改。这是代码质量,是它的核心。
  • @Snicolas 无需详细说明某些警告:当您和您的团队发现其中一些具有误导性或不必要时,禁用这些警告而不是忽略它们是正确的方法。忽略它们会使您的警告列表充满成千上万的警告,然后您会错过重要的警告。在我看来,“问题视图”必须始终完全干净。

标签: java checkstyle


【解决方案1】:

有点晚了,供以后参考:

您可以通过这种方式使用 SuppressWithNearbyCommentFilter:

<module name="SuppressWithNearbyCommentFilter">
   <property name="commentFormat" value="CHECKSTYLE DISABLE ([\w\|]+) FOR (-?\d+) LINES"/>
   <property name="checkFormat" value="$1"/>
   <property name="influenceFormat" value="$2"/>
</module>

在你想禁用警告的那一行你可以写:

// CHECKSTYLE DISABLE <WarningName> FOR <# of lines> LINES

例如

// CHECKSTYLE DISABLE MagicNumber FOR 2 LINES

这个数字也可以是负数(如果警告是在一些您无法触摸的自动生成的代码中)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-22
    • 2017-02-04
    • 1970-01-01
    • 2013-07-23
    • 2020-04-17
    • 2014-01-25
    • 2016-12-26
    相关资源
    最近更新 更多