हाल ही में एक सवाल में, किसी स्थिर तरीकों के बारे में पूछा और जवाब में से एक ने कहा कि आम तौर पर आप की तरह कुछ के साथ उन्हें फोन:किसी ऑब्जेक्ट "खराब फॉर्म" के माध्यम से स्थिर विधियों को कॉल कर रहा है? क्यूं कर?
MyClassName.myStaticMethod();
पर यह भी कहा कि है कि आप भी साथ एक वस्तु के माध्यम से यह कह सकते हैं टिप्पणियां :
MyClassName myVar;
myVar.myStaticMethod();
लेकिन यह खराब रूप माना जाता था।
अब मुझे लगता है कि ऐसा करने वास्तव में मेरे जीवन बनाने के आसान तो मैं नहीं है सकते हैं में चिंता करने की क्या स्थिर है के बारे में या नहीं (क)।
कोई वस्तु के माध्यम से स्थैतिक कार्यों को कॉल करने में कुछ समस्या है? जाहिर है आप एक ब्रांड नई वस्तु बनाने चाहेगा नहीं बस इसे कहते हैं:
Integer xyzzy;
int plugh = xyzzy.parseInt ("42", 10);
लेकिन, अगर आप पहले से ही वांछित प्रकार का ऑब्जेक्ट है, वहाँ इसे प्रयोग में एक समस्या है?
(क) जाहिर है, मैं के साथ एक गैर स्थैतिक विधि कॉल नहीं कर सकते हैं:
MyClassName.myNonStaticMethod();
लेकिन यह है कि इस मुद्दे को मैं यहाँ के बारे में पूछ रहा हूँ नहीं है।
जानकारी के लिए यह SO उत्तर देखें http://stackoverflow.com/questions/610458/why-isnt-calling-a-static-method-by-way-of-an-instance-an-error-for-the -जावा-सह/610674 # 610674 –
जब मैं कोड पढ़ता हूं और एक विधि के लिए एक कॉल है, तो मेरे लिए यह ** अत्यधिक ** प्रासंगिक है कि तुरंत यह बताने में सक्षम हो कि वह कॉल ऑब्जेक्ट की स्थिति को पढ़ और न संशोधित नहीं कर सकता यह इससे संबंधित है। 'MyClassName.myStaticMethod() के साथ; 'इसके बारे में एक दूसरे के लिए आश्चर्य की आवश्यकता भी नहीं है। 'MyVar.myStaticMethod(); 'आपको विधि का कोड देखना होगा, और आप हमेशा _all_ कॉल के लिए इस संदेह में रहेंगे। बेशक अलग-अलग आईडीई इस जानकारी को पुनर्प्राप्त करने में आसान बना सकते हैं (जावाडोक टूलटिप्स, सिंटैक्स हाइलाइटिंग इत्यादि) लेकिन मैं इस पर भरोसा नहीं करता कि कोड कैसे लिखना है। – SantiBailors