2013-03-04 19 views
5

Używam checkstyle, aby uzyskać raporty na temat mojego kodu źródłowego. To pytanie dotyczy MagicNumberCheck.Java style check, MagicNumberCheck

Używam Date/(org.joda.)DateTime w moim kodu źródłowego tak:

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

Czy istnieje sposób, aby stłumić MagicNumberCheck powiadomienia jeśli liczba magia jest w datę lub DateTime?

Odpowiedz

14

Można użyć sprawdzania, aby wykonać tę czynność podając SuppressionCommentFilter.

skonfigurować wartości właściwości, takie jak (w pliku 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> 

Teraz wymaganych linii, można zrobić jak

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

To będzie tylko tłumić MagicNumber checks sprawdza reszta będzie pracować tutaj.

można stłumić wielu checcks też, jak

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

tego będzie tłumić tylko MagicNumber and Indentation Checks. Inne kontrole będą działać bez zarzutu.

2

można wyciszyć powiadomienia Checkstyle za pomocą komentarz

//CHECKSTYLE:OFF 

przed tymi liniami i

//CHECKSTYLE:ON 

potem aby go ponownie włączyć.

Wymaga to włączenia modułu modułu SuppressionCommentFilter.

Oczywiście można również utworzyć własny moduł, który robi dokładnie to, co chcesz.

+0

Hmm, rozwiązania, ale nie rozwiązanie, które mam na myśli. Contra: - Muszę to zrobić za każdym razem - to rozwiązanie tłumi również inne ostrzeżenia. –