मुझे टाइप किए गए सूची पैरामीटर वाले किसी विधि के साथ कुछ समस्याएं हैं, जो किसी अन्य (टाइप की गई) कक्षा से विरासत में मिली हैं।टाइप की गई सूची और विरासत के साथ विधि
के यह सरल रखने करते हैं:
public class B<T> {
public void test(List<Integer> i) {
}
}
बी वर्ग एक बेकार सामान्य टी, और परीक्षण() एक पूर्णांक सूची चाहते हैं।
अब अगर मैं कार्य करें:
public class A extends B {
// don't compile
@Override
public void test(List<Integer> i) {
}
}
मैं एक "ग्रुप ए के विधि परीक्षण (सूची) ओवरराइड या एक महाप्रकार विधि को लागू करना चाहिए" त्रुटि मिलती है, कि ऐसा नहीं होना चाहिए।
लेकिन सूची के प्रकार को हटाने से काम करता है ... हालांकि यह कक्षा जेनेरिक पर निर्भर नहीं है।
public class A extends B {
// compile
@Override
public void test(List i) {
और यह भी नीचे बेकार सामान्य को परिभाषित टाइप किया सूची
public class A extends B<String> {
// compile
@Override
public void test(List<Integer> i) {
तो मैं पता कर रहा हूँ उपयोग करने के लिए, बी के जेनेरिक परीक्षण() सूची के प्रकार पर कोई असर नहीं होना चाहिए। क्या किसी के पास क्या हो रहा है इसका विचार है?
धन्यवाद
मेरा मानना है कि आपका उत्तर निहित है [यहां] (http://stackoverflow.com/a/502770/248082)। – nobeh
परंपरागत रूप से [पूंजी वी] 'शून्य 'सामान्य पैरामीटर के लिए उपयोग किया जाता है जिसका आप उपयोग नहीं करना चाहते हैं। उदाहरण के लिए जो एक मूल्य लौटाए बिना 'java.security.PreivilegedAction' का उपयोग कर रहा है (वापसी' शून्य '- यह केवल वैध' शून्य 'संदर्भ है)। –