2013-03-04 16 views
5

Ich verwende checkstyle, um Berichte über meinen Quellcode zu erhalten. Diese Frage bezieht sich auf die MagicNumberCheck.Javas Checkstyle, MagicNumberCheck

Ich verwende Date/(org.joda.)DateTime in meinem Source-Code wie folgt:

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

Gibt es eine Möglichkeit in einem Datum oder Datetime das MagicNumberCheck Benachrichtigungen wenn die magische Zahl ist zu unterdrücken?

Antwort

14

Sie können SuppressionCommentFilter überprüfen, um dies zu tun.

Konfigurieren Sie die Eigenschaften Werte wie (in Ihrer checkstyle configuration Datei)

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

Jetzt für die erforderlichen Leitungen, können Sie tun, wie

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

Dieses nur MagicNumber checks unterdrücken, werden die übrigen Kontrollen funktionieren Hier.

können Sie auch mehrere checcks unterdrücken, wie

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

dieses nur MagicNumber and Indentation Checks unterdrücken. Andere Überprüfungen funktionieren gut.

2

können Sie Check Benachrichtigungen unterdrücken, indem Sie den Kommentar

//CHECKSTYLE:OFF 

mit vor diesen Linien und

//CHECKSTYLE:ON 

danach, es zu reaktivieren.

Dazu muss das Modul SuppressionCommentFilter aktiviert sein.

Natürlich könnten Sie auch Ihr eigenes Modul erstellen, das genau das tut, was Sie wollen.

+0

Hmm, eine Lösung, aber nicht die Lösung, die ich mir vorstelle. Contra: - Ich muss es jedes Mal tun - diese Lösung unterdrückt auch andere Warnungen. –