क्या कोई समझा सकता है कि दूसरी कक्षा संकलित क्यों नहीं होती है?क्या एरर का रिटर्न टाइप हिस्सा है?
1 javac और JDK 6 का उपयोग ठीक संकलित है कि उदाहरण के लिए एक छोटी सी परिवर्तन (ग्रहण इस कोड को शिकायत)
public class SameSignatureMethods {
public <T extends String> Boolean test()
{
return true;
}
public <T extends Character> Double test()
{
return 1d;
}
}
2, और संकलन निम्नलिखित त्रुटि के साथ विफल:
name clash: <T>test() and <T>test() have the same erasure
केवल परिवर्तन विधि पर वापसी प्रकार है:
public class SameSignatureMethods {
public <T extends String> Boolean test()
{
return true;
}
public <T extends Character> Boolean test() {
return true;
}
}
यह बताता है कि कैसे firs के लिए मुख्य विधि टी वर्ग दिखेगा:
public static void main(String[] args) {
SameSignatureMethods m = new SameSignatureMethods();
System.out.println("m.<Character>test()=" + m.<Character>test());
System.out.println("m.<String>test()=" + m.<String>test());
}
हम्म, दिलचस्प एक। आपने किस कंपाइलर का उपयोग किया था? जेडीके या कुछ आईडीई-बिल्टिन? पहले व्यक्ति ग्रहण 3.6 एसआर 1 (जो सही है) में संकलित नहीं करता है। – BalusC
जावा संस्करण "1.6.0_18" जावा (टीएम) एसई रनटाइम पर्यावरण (1.6.0_18-बी07 का निर्माण) जावा हॉटस्पॉट (टीएम) क्लाइंट वीएम (बिल्ड 16.0-बी 13, मिश्रित मोड) – Yuriy
@ बाल्लूसी रिटर्न प्रकार नहीं है विधि हस्ताक्षर का हिस्सा है, है ना? त्रुटि संदेश हालांकि अजीब है। – extraneon