न तो। आपको एक संकलक त्रुटि मिल जाएगी जो आपको यह बताने के लिए कहती है कि आप किस विधि को कॉल करना चाहते हैं। आप स्पष्ट रूप से पहला तर्क कास्टिंग करके कर सकते हैं:
showInputDialog((Object) null, "Write something");
या
showInputDialog((Component) null, "Write something");
अद्यतन मैं पता होना चाहिए - जॉन स्कीट कभी नहीं संदेह है। जिस समस्या को मैंने उपर्युक्त संदर्भित किया है वह तब होता है जब यह निर्धारित करना असंभव है कि कौन सी विधि अधिक विशिष्ट है। यहां एक परीक्षण केस है:
public class Test {
public void doSomething(String arg1, Object arg2) {
System.out.println("String, Object");
}
public void doSomething(Object arg1, String arg2) {
System.out.println("Object, String");
}
public static void main(String[] args) {
Test test = new Test();
test.doSomething(null, null);
}
}
उपरोक्त एक कंपाइलर त्रुटि देगा।
वास्तव में एक अच्छा सवाल है कि, भले ही वह काल्पनिक है पाने के संकलन करने की कोशिश (आप, पहले कॉल करने के लिए कभी नहीं चाहते हैं के रूप में यह 'JOptionPane.showInputDialog के समान है (" कुछ लिखें "); ' – Powerlord