2013-03-04 224 views
5

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

我使用Date/(org.joda.)DateTime在我的源代码是这样的:

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

有没有办法来抑制MagicNumberCheck通知如果一个神奇的数字是日期或日期时间之内?

回答

14

您可以使用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,其余检查将工作这里。

可以抑制多种checcks太像

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

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

2

您可以通过使用注释

//CHECKSTYLE:OFF 
那些行前

//CHECKSTYLE:ON 

事后重新启用它剿CheckStyle的通知。

这要求启用模块SuppressionCommentFilter

当然,你也可以创建你自己的模块,做到你想要的。

+0

嗯,一个解决方案,但不是我想到的解决方案。 Contra: - 我必须每次都这么做 - 这个解决方案也会抑制其他警告。 – 2013-03-04 13:23:13