कारण type erasure है। जेनिक्स कक्षाओं में संग्रहित नहीं होते हैं, वे संकलित समय की जानकारी केवल होते हैं, इसलिए रनटाइम पर, दो विधियां समान होती हैं और इसलिए नामकरण संघर्ष होता है।
संदर्भ
इन तीन तरीकों वास्तव में समान (पढ़ें: वे समान बाईटकोड उत्पादन): कर रहे हैं
public static void a(Set plainSet) {}
public static void a(Set<String> stringSet) {}
public static void a(Set<Map<String,String>> mapSet) {}
यदि आप वास्तव में दो अलग-अलग विधियां चाहते हैं, तो आपको विभिन्न विधि हस्ताक्षर प्रदान करना होगा (उदा। विभिन्न विधि नाम, विधियों में से एक के लिए एक अतिरिक्त पैरामीटर इत्यादि)
स्रोत
2010-10-05 06:25:48
त्रुटि क्या है? – kasten