यदि आपके पास java.lang.Integer
पर एक स्थिर आयात वाला वर्ग है और मेरी कक्षा में एक स्थिर विधि parseInt(String)
है तो कौन सी विधि parseInt("12345")
पर कॉल करेगी?स्थैतिक आयात विधि ओवरलैप
अग्रिम में धन्यवाद!
यदि आपके पास java.lang.Integer
पर एक स्थिर आयात वाला वर्ग है और मेरी कक्षा में एक स्थिर विधि parseInt(String)
है तो कौन सी विधि parseInt("12345")
पर कॉल करेगी?स्थैतिक आयात विधि ओवरलैप
अग्रिम में धन्यवाद!
यदि आप अपनी कक्षा के अंदर हैं तो यह आपकी विधि पर कॉल करेगा।
यदि आप अपनी कक्षा के बाहर हैं (और दोनों वर्गों को आयात करते हैं) तो आपको निर्दिष्ट करना होगा कि किस वर्ग का उपयोग करना है।
साबित: http://java.sun.com/docs/books/jls/download/langspec-3.0.pdf $ 8 और $ 6.3 (टिप्पणी देखें)
इस प्रयास करें:
import static java.lang.Integer.parseInt;
public class Test {
public static void main(String[] args) {
System.out.println(parseInt("12345"));
}
private static int parseInt(String str) {
System.out.println("str");
return 123;
}
}
परिणाम:
str
123
आप कक्षा में विधि पहले निष्पादित किया जाता है।
क्या आप एक संदर्भ दिखा सकते हैं जो मानक के मामले में मानक द्वारा गारंटीकृत है? यह संकलक निर्भर हो सकता है ... – amit
अमित – MozenRath
को उत्तर देने के लिए sm1 के लिए प्रतीक्षा कर रहा है जावा भाषा विशिष्टता $ 8: सदस्य (§8.2) का दायरा (§6.3) वर्ग की घोषणा का पूरा निकाय है जिसके सदस्य अंतर्गत आता है। | $ 6.3 से: घोषणा का दायरा उस कार्यक्रम का क्षेत्र है जिसमें घोषणा द्वारा घोषित इकाई को एक साधारण नाम का उपयोग करने के लिए संदर्भित किया जा सकता है (बशर्ते यह अव्यवस्थित (§6.3.1))। – Paranaix