6

यदि आपके पास java.lang.Integer पर एक स्थिर आयात वाला वर्ग है और मेरी कक्षा में एक स्थिर विधि parseInt(String) है तो कौन सी विधि parseInt("12345") पर कॉल करेगी?स्थैतिक आयात विधि ओवरलैप

अग्रिम में धन्यवाद!

उत्तर

6

यदि आप अपनी कक्षा के अंदर हैं तो यह आपकी विधि पर कॉल करेगा।
यदि आप अपनी कक्षा के बाहर हैं (और दोनों वर्गों को आयात करते हैं) तो आपको निर्दिष्ट करना होगा कि किस वर्ग का उपयोग करना है।

साबित: http://java.sun.com/docs/books/jls/download/langspec-3.0.pdf $ 8 और $ 6.3 (टिप्पणी देखें)

+0

क्या आप एक संदर्भ दिखा सकते हैं जो मानक के मामले में मानक द्वारा गारंटीकृत है? यह संकलक निर्भर हो सकता है ... – amit

+0

अमित – MozenRath

+2

को उत्तर देने के लिए sm1 के लिए प्रतीक्षा कर रहा है जावा भाषा विशिष्टता $ 8: सदस्य (§8.2) का दायरा (§6.3) वर्ग की घोषणा का पूरा निकाय है जिसके सदस्य अंतर्गत आता है। | $ 6.3 से: घोषणा का दायरा उस कार्यक्रम का क्षेत्र है जिसमें घोषणा द्वारा घोषित इकाई को एक साधारण नाम का उपयोग करने के लिए संदर्भित किया जा सकता है (बशर्ते यह अव्यवस्थित (§6.3.1))। – Paranaix

5

इस प्रयास करें:

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 

आप कक्षा में विधि पहले निष्पादित किया जाता है।

+2

के दायरे में होता है, क्या आप एक संदर्भ दिखा सकते हैं कि यह मानक होने के लिए मानक द्वारा गारंटीकृत है? यह संकलक निर्भर हो सकता है ... – amit

+1

+1 मुझे सबूत पसंद है। – Bohemian

संबंधित मुद्दे