Friday 15 March 2013

java - Checkstyle error when not declaring fields as final -


मेरे पास जावा में लिखित निम्नलिखित कस्टम अपवाद है:

  import java.util.List ; सार्वजनिक श्रेणी नीति अपवाद RuntimeException विस्तारित {निजी स्थिर अंतिम लंबी सीरियल VERSIONUID = -1760901980049241500L; निजी पॉलिसीएअरराकोड कोड; निजी सूची & lt; स्ट्रिंग & gt; चर; सार्वजनिक नीति अपवाद (अंतिम नीतिएअरराकोड कोड, अंतिम सूची & lt; स्ट्रिंग & gt; चर) {this.code = code; This.variables = चर; } सार्वजनिक नीतिएयररोडकोडकोड () {रिटर्न कोड; } सार्वजनिक शून्य सेटकोड (अंतिम नीतिएर्रा कोड कोड) {this.code = code; } सार्वजनिक सूची & lt; स्ट्रिंग & gt; GetVariables () {वापसी चर; } सार्वजनिक शून्य सेट वैरिबिल (अंतिम सूची & lt; स्ट्रिंग & gt; चर) {this.variables = variables; }}   

मैं निम्नलिखित चेकस्टाइल त्रुटियों को प्राप्त कर रहा हूं:

क्षेत्र 'कोड' को अंतिम घोषित किया जाना चाहिए।

फ़ील्ड 'चर' को अंतिम घोषित किया जाना चाहिए।

मेरा मानना ​​है कि चेकस्टाइल त्रुटि को फेंका जा रहा है। एपीआई के अनुसार:

यह सुनिश्चित करता है कि स्थानीय वैरिएबल जो उनके मानों को कभी भी बदलते नहीं हैं, उन्हें अंतिम घोषित किया जाना चाहिए।

हालांकि, स्पष्ट रूप से गेटर्स और सेटर्स शामिल चर के लिए, इसलिए उन्हें अंतिम घोषित नहीं किया जा सकता है।

ये त्रुटियां मेरे सभी वर्गों के साथ नहीं होती हैं, केवल कस्टम अपवाद हैं, जो अपवाद के अपवाद के कारण क्रमबद्ध हैं।

क्या मैं यहाँ कुछ याद कर रहा हूं? या यह एक चेकस्टाइल बग है?

मेरा मानना ​​है कि इस आदमी का एक समान है, हालांकि उसके पोस्ट में स्थिर वैरिएबल के इस्तेमाल पर कुछ भ्रम हो रहा है। < P>

समस्या वास्तव में है कि आप अपवाद का विस्तार कर रहे हैं। एक डिजाइन नियम है कि अपवाद ऑब्जेक्ट अपरिवर्तनीय होना चाहिए। सभी प्रासंगिक मान कन्स्ट्रक्टर में दिए जाने चाहिए।

चेकस्टाइल नियम को MutableException कहा जाता है और प्रलेखित है।

No comments:

Post a Comment