2013-03-04 2 views
5

checkstyle을 사용하여 내 소스 코드에 대한보고를 얻습니다. 이 질문은 MagicNumberCheck에 관한 것입니다.Java의 checkstyle, MagicNumberCheck

나는이처럼 내 소스 코드에 Date/(org.joda.)DateTime을 사용하고 있습니다 :

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

은 매직 넘버가 날짜 또는 날짜 시간 이내 인 경우 MagicNumberCheck 알림을 억제 할 수있는 방법이 있습니까?

답변

14

SuppressionCommentFilter을 사용하면이 작업을 수행 할 수 있습니다.

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

이는 MagicNumber checks을 억제 것 같은

구성 (당신의 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> 

, 당신이 할 수있는, 나머지 검사 작동합니다 이리.

MagicNumber and Indentation Checks가 표시되지 않습니다

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

과 같이 너무 여러 checcks을 억제 할 수 있습니다. 다른 검사는 정상적으로 작동합니다.

2

당신은 그것을 다시 활성화 후 주석에게

//CHECKSTYLE:ON 

//CHECKSTYLE:OFF 
그 라인 전에

를 사용하여 CheckStyle 알림을 supress 수 있습니다.

모듈 SuppressionCommentFilter이 활성화되어 있어야합니다.

물론 원하는대로 정확하게 모듈을 만들 수도 있습니다.

+0

흠, 해결책은 있지만 내가 생각한 해결책은 아닙니다. Contra : - 매번이 작업을 수행해야합니다.이 솔루션은 다른 경고도 표시하지 않습니다. –