2013-03-04 16 views
5

Kaynak kodum hakkında rapor almak için checkstyle kullanıyorum. Bu soru MagicNumberCheck hakkındadır.Java'nın kontrol modeli, MagicNumberCheck

Bu gibi benim kaynak kodunda Date/(org.joda.)DateTime kullanıyorum:

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

sihirli sayı bir tarihi veya DateTime içinde olup olmadığını MagicNumberCheck bildirimleri bastırmak için bir yolu var mı?

cevap

14

Bunu yapmak için SuppressionCommentFilter kullanabilirsiniz.

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

Bu yalnızca MagicNumber checks bastırır gibi

Yapılandırma (sizin checkstyle configuration dosyada) gibi özellikler değerleri gerekli hatlar için Şimdi

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

, yapabileceğiniz, dinlenme kontrolleri çalışacak İşte.

Yalnızca MagicNumber and Indentation Checks bastırır

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

böyle çok Çoklu checcks baskılayabilir. Diğer çekler iyi çalışır.

2

Bunu yeniden etkinleştirmek için sonradan yolla

//CHECKSTYLE:ON 

//CHECKSTYLE:OFF 
bu satırları önce

ve

kullanarak checkstyle bildirimlerini geçebilirim.

Bu modül SuppressionCommentFilter gerektirir etkin olması.

Elbette, tam olarak istediğiniz şeyi yapan kendi modülünüzü de oluşturabilirsiniz.

+0

Hmm, bir çözüm, ancak benim aklımda değil çözüm. Kontra: - Her seferinde bunu yapmak zorundayım - bu çözüm de diğer uyarıları da bastırıyor. –