2012-09-04 13 views
6

हम अपने कोड की गुणवत्ता के प्रबंधन के लिए सोनार का उपयोग कर रहे हैं।जेपीए एनोटेशन पर जादू संख्या सोनार उल्लंघन

@NotNull 
@Size(min = 1, max = 300) 
@Column(name = "NAME") 

इस टिप्पणी के लिए एक सच्चे उल्लंघन है: मैं उस तरह जेपीए एनोटेशन के लिए "जादुई संख्या" उल्लंघन के साथ एक समस्या है?

यदि नहीं, तो हम इस तरह के सोनार उल्लंघन से कैसे निपट सकते हैं?

उत्तर

6

जादू संख्या उल्लंघन यह समझ में नहीं आता है कि यह संख्या एनोटेशन में दिखाई देती है या नहीं। आईएमएचओ यह एक झूठी सकारात्मक है और आप इसे दो तरीकों से सौदा कर सकते हैं। या तो इस नियम को अपनी गुणवत्ता प्रोफ़ाइल में अक्षम करें या एक मैजिक आईडी क्लास बनाएं और उन सभी नंबरों को सूचीबद्ध करें जिन्हें आप स्थिर गुणों के रूप में उपयोग कर रहे हैं। उदाहरण के लिए निम्नलिखित वर्ग

public final class MAGICNUMBER { 
public static final int L8000 = 8000; 
public static final int L300 = 300; 

}

तो फिर तुम इस

@NotNull 
@Size(min = 1, max = MAGICNUMBER.L300) 
@Column(name = "NAME") 
+0

मुझे इन दो तरीकों से पसंद नहीं है। मैं सोनार को अपने कोड में किसी भी बदलाव के बिना संभालना चाहता हूं। –

+3

फिर अपने सोनार प्रोफाइल में प्रासंगिक नियम को अक्षम करें – ppapapetrou

4

की तरह अपनी कक्षा में उपयोग कर सकते हैं मुझे यकीन है कि यह कैसे 2012 में था नहीं कर रहा हूँ, लेकिन अब यह लग रहा देखो , v 3.3.2 में एनोटेशन के लिए इसे अक्षम करने का एक तरीका प्रतीत होता है, और निश्चित रूप से

Disable magic number in annotation. Shown is Sonar 3.3.2

1

आप अपनी चेकस्टाइल फ़ाइल में नियम संपादित कर सकते हैं, इसलिए यह एनोटेशन, हैशकोड विधियों या विशिष्ट संख्याओं को ध्यान में रखता है।

<module name="MagicNumber"> 
    <property name="ignoreNumbers" value="-1, 0, 1, 2, 3"/> 
    <property name="ignoreHashCodeMethod" value="true" /> 
    <property name="ignoreAnnotation" value="true" /> 
</module> 
संबंधित मुद्दे