java - Why does javac complain about not initialized variable? -


इस जावा कोड के लिए:

  स्ट्रिंग var; clazz.doSomething (वर);  

कंपाइलर इस त्रुटि की रिपोर्ट क्यों करता है:

वेरिएबल 'var' को आरम्भ नहीं किया गया हो सकता है

I सोचा कि सभी चर या संदर्भ को null पर आरंभ किया गया था। आपको करने की आवश्यकता क्यों है:

  स्ट्रिंग var = null;  

इंस्टासेंस और क्लास चर को रिक्त करने के लिए आरंभ किया जाता है (या 0), लेकिन स्थानीय वेरिएबल नहीं हैं।

बहुत विस्तृत व्याख्या के लिए देखें जो मूल रूप से एक ही बात कहता है:

एक प्रोग्राम में प्रत्येक चर होना चाहिए इसके मान के पहले एक मान का उपयोग किया जाता है:

  • प्रत्येक वर्ग चर, इंस्टेंस चर, या सरणी घटक को मूल मान के साथ आरंभ किया जाता है जब इसे बनाया जाता है:
    • [snipped सभी डिफ़ॉल्ट मानों की सूची]
  • प्रत्येक विधि पैरामीटर विधि के इनवॉल्टर द्वारा प्रदान की गई संबंधित तर्क मान के लिए आरंभीकृत है।
  • प्रत्येक कंस्ट्रक्टर पैरामीटर एक क्लास इंस्टेंस सृजन अभिव्यक्ति या स्पष्ट कंस्ट्रक्टर अभिविन्यास द्वारा प्रदान किए जाने वाले संबंधित तर्क मान में आरंभ किया गया है।
  • एक अपवाद-हैंडलर पैरामीटर अपवाद का प्रतिनिधित्व करने वाले फेंक ऑब्जेक्ट के लिए प्रारंभ होता है।
  • निश्चित आवंटन के नियमों का उपयोग करके कंपाइलर द्वारा सत्यापित किए जा सकने वाले किसी भी तरह से प्रारंभिक या असाइनमेंट द्वारा स्थानीय वैरिएबल को स्पष्ट रूप से एक मूल्य दिया जाना चाहिए।

Comments

Popular posts from this blog

.net - C# List<T>.Find(x=>x.Rectangle.Contains(Point)) FAIL -

iphone - Smoothing a rounded stroke in Core Graphics -

c++ - QtQuick: QQmlApplicationEngine failed to load component qrc:/main.qml:23 Invalid attached object assignment -