में स्टेटिक फील्ड्स के आदेश निम्नलिखित कोड दिया?प्रारंभ स्टेटिक कक्षा
उत्तर
हाँ, वे, कृपया 10.4.5.1 Static field initialization देखेंगे:
स्थिर क्षेत्र चर initializers एक वर्ग के कि शाब्दिक क्रम में क्रियान्वित कर रहे हैं कार्य की एक दृश्य है जिसमें वे में प्रदर्शित करने के अनुरूप कक्षा घोषणा। एक स्थिर निर्माता (धारा 10.11) में वर्ग मौजूद है, तो स्थिर क्षेत्र initializers के निष्पादन होता है तुरंत कि स्थिर निर्माता को क्रियान्वित करने से पहले। अन्यथा, स्थिर फ़ील्ड प्रारंभकर्ता कार्यान्वयन-निर्भर समय से पहले उस वर्ग को के स्थिर क्षेत्र का पहला उपयोग निष्पादित किया जाता है।
ऐसा कहा जा रहा है कि मुझे लगता है कि एक स्थिर प्रकार प्रारंभकर्ता (स्थैतिक कन्स्ट्रक्टर) के अंदर प्रारंभ करना बेहतर होगा।
हम्म ... मुझे आश्चर्य है कि संकलित (यह करता है, मैंने चेक किया है)। मुझे किसी भी गारंटी की जानकारी नहीं है जो इसे सुरक्षित बनाएगी। एक स्थिर निर्माता ...
संपादित का उपयोग करें: मैं (better answer above देखें) है कि यह काम करेगा स्वीकार लेकिन कोड के साथ मेरा विचार इसे जितना संभव हो सके उतना सरल और स्पष्ट रखना है। यदि ऐसा नहीं है स्पष्ट है कि यह काम करेगा (और यह आप से पूछना करने के लिए है नहीं तो हो सकता है), तो यह है कि जिस तरह से
विशेष रूप से, समस्याओं क्षेत्र आदेश पर निर्भर के साथ कुछ भी न लिखें ... :
- यदि आप कोड चारों ओर ले जाने (मैं अक्सर करते हैं)
- यह अगर तुम
partial
कक्षाएं
मेरी सलाह रहता में कोड विभाजित तोड़ सकते हैं इसे तोड़ सकते हैं: के लिए एक स्थिर निर्माता का उपयोग यह परिदृश्य
+1 यह सलाह अच्छी है - सिर्फ इसलिए कि आप कुछ करना चाहते हैं, इसका मतलब यह नहीं है कि आपको चाहिए। मुझे लगता है कि एक स्थिर कन्स्ट्रक्टर यहां जाने का तरीका है, भले ही भाषा इस प्रकार के फील्ड प्रारंभिकरण का समर्थन करे। –
यद्यपि आप स्थैतिक संपत्ति/फ़ील्ड प्रारंभकर्ताओं के साथ अधिक संक्षिप्त कोड लिख सकते हैं (परिभाषा में एक बार और एक बार स्थिर प्रारंभिक कार्य में एक बार प्रति संपत्ति संपत्ति नाम टाइप करना)। कुछ मामलों में, यह एक स्क्रीन पर एक स्रोत फ़ाइल फिटिंग के बीच अंतर हो सकता है या स्क्रॉलिंग को पूर्ण रूप से देखने की आवश्यकता होती है। आपका लक्ष्य क्या है इस पर निर्भर करता है। यदि आप प्रारंभिक रूप से प्रारंभ करने की आवश्यकता के मुकाबले गुणों को अलग-अलग क्रम में रखना चाहते हैं, तो हां, मैन्युअल रूप से लिखित स्थिर प्रारंभिक कार्य आपकी एकमात्र पसंद है। – binki
पहली नज़र में, मुझे यकीन नहीं होगा, और मुझे यह देखने के लिए यह देखना था कि यह संकलित भी है या नहीं।
यह देखते हुए कि, मैं एक स्थिर निर्माता में मूल्य आरंभ करूंगा।
सबूत उद्धृत करने के लिए देखभाल? –
बहुत बेहतर; -पी –
@ मर्क - एलओएल, मैंने "हां" पोस्ट किया, इसलिए मैं पहले होगा और फिर सबूत के साथ वापस आया। चूंकि मैं अब एफजीटीडब्लू नहीं कर सकता हूं, मुझे लगता है कि मुझे पहले होने की चिंता नहीं करनी चाहिए: डी –