ग्रहण में इस खोजबग चेतावनी के साथ मैं यहां थोड़ा उलझन में हूं।एक आवृत्ति विधि में एक स्थिर चर के लिए लिखना, यह एक बुरा अभ्यास क्यों है?
public class MyClass {
public static String myString;
}
public class AnotherClass {
public void doSomething() {
MyClass.myString = "something";
}
}
यह मैं एक FindBugs चेतावनी "उदाहरण विधि से स्थिर क्षेत्र के लिए लिखना", हालांकि यह मेरे लिए एक चेतावनी नहीं देता है देता है:
public class MyClass {
public static String myString;
}
public class AnotherClass {
public void doSomething() {
doAnotherThing();
}
public static doAnotherThing() {
MyClass.myString = "something";
}
}
कैसे है यह किसी भी अलग ?, और क्यों लिख रहा है एक आवृत्ति विधि से एक स्थिर चर के लिए एक बुरा अभ्यास ?, मुझे लगता है कि इसे सिंक्रनाइज़ेशन के साथ करना है, लेकिन यह अभी भी मुझे स्पष्ट नहीं है।
मुझे पता है कि यह वैरिएबल अंतिम होना चाहिए, लेकिन मैं गुण फ़ाइल से मूल्य लोड कर रहा हूं।
मुझे सिंक्रनाइज़ेशन के बजाय अंतर्निहित तर्क के रूप में आसानी से समझने और स्पष्टता पर जोर देना पसंद है (जो कि विधि स्थिर है या नहीं, इस पर ध्यान दिए बिना समस्याग्रस्त है)। –
@ स्टेव - धन्यवाद –