2015-02-18 5 views
6

मैं निम्नलिखित जावा प्रोग्राम है कि मैं संकलन नहीं करने के लिए उम्मीद कर रहा था है, लेकिन यह क्या किया:तर्कों के साथ एक गैर पैरामीटर विधि को कॉल करने में त्रुटि क्यों नहीं है?

class Test { 
    public static void f() { 
    } 

    void m() { 
      Test.<String>f(); 
    } 
} 

क्यों करता javac इस तरह से एक गैर पैरामिट्रीकृत विधि बुला अनुमति देते हैं?

मेरे जावा संस्करण है: javac 1.7.0_75

+2

आप किस जेडीके संस्करण का उपयोग कर रहे हैं? यह मुझे संकलित नहीं करता है (जेडीके 1.5 और 1.6) – Albert

+0

@ अल्बर्ट ओह, मैं जावा 7 का उपयोग कर रहा हूं। मैं अपने जेडीके संस्करण के साथ विवरण संपादित करूंगा। – user11171

+0

जहां से आपको यह सामान मिला है ⁿ | ⁿ –

उत्तर

5

स्पष्ट प्रकार पैरामीटर बस नजरअंदाज कर दिया है।

यह JLS, Section 15.12.2.1 में कहा गया है: विधि मंगलाचरण स्पष्ट प्रकार तर्क भी शामिल है, और सदस्य एक सामान्य तरीका है

  • है, तो प्रकार तर्क की संख्या बराबर प्रकार पैरामीटर की संख्या के लिए है विधि का

इस खंड का तात्पर्य है कि एक गैर सामान्य विधि संभावित एक मंगलाचरण कि स्पष्ट प्रकार तर्क की आपूर्ति के लिए लागू हो सकता है। दरअसल, यह लागू हो सकता है। ऐसे मामले में, तर्कों को आसानी से अनदेखा कर दिया जाएगा।

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

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