【问题标题】:Java's checkstyle, MagicNumberCheckJava的checkstyle,MagicNumberCheck
【发布时间】:2013-03-04 12:49:22
【问题描述】:

我正在使用checkstyle 来获取有关我的源代码的报告。这个问题是关于MagicNumberCheck

我在我的源代码中使用Date/(org.joda.)DateTime,如下所示:

DateTime dateTime = new DateTime(2013, 2, 27, 23, 0):
dateTime.plusHours(57);

如果幻数在 Date 或 DateTime 内,有没有办法抑制 MagicNumberCheck 通知

【问题讨论】:

    标签: checkstyle magic-numbers


    【解决方案1】:

    您可以使用 SuppressionCommentFilter 检查来执行此操作。

    配置属性值,例如(在您的 checkstyle configuration 文件中)

    <module name="SuppressionCommentFilter">
      <property name="offCommentFormat" value="Check\:OFF\: ([\w\|]+)"/>
      <property name="onCommentFormat" value="Check\:ON\: ([\w\|]+)"/>
      <property name="checkFormat" value="$1"/>
    </module>
    

    现在对于需要的行,你可以这样做

    //Check:OFF: MagicNumber
    DateTime dateTime = new DateTime(2013, 2, 27, 23, 0):
    dateTime.plusHours(57);
    //Check:ON: MagicNumber
    

    这只会抑制MagicNumber checks,其余检查将在这里工作。

    你也可以禁止多次检查,比如

    //Check:OFF: MagicNumber|Indentation
    Code Here
    //Check:ON: MagicNumber|Indentation
    

    这只会抑制MagicNumber and Indentation Checks。其他检查也可以正常工作。

    【讨论】:

      【解决方案2】:

      您可以使用评论取消 CheckStyle 通知

      //CHECKSTYLE:OFF
      

      在这些行之前

      //CHECKSTYLE:ON
      

      之后重新启用它。

      这需要启用模块 SuppressionCommentFilter

      当然,您也可以创建自己的模块来满足您的需求。

      【讨论】:

      • 嗯,一个解决方案,但不是我想到的解决方案。反对: - 我必须每次都这样做 - 这个解决方案也会抑制其他警告。
      猜你喜欢
      • 1970-01-01
      • 2012-10-24
      • 1970-01-01
      • 1970-01-01
      • 2013-07-05
      • 1970-01-01
      • 2014-07-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多