के भीतर मेरे कोड एकइसके अमूर्त सुपरक्लास के भीतर एक उप-वर्ग के सामान्य प्रकार का उपयोग करना?
public class ChildClassA extends AbstractClass<GenericTypeA> {...}
public class ChildClassB extends AbstractClass<GenericTypeB> {...}
की तरह अमूर्त सुपर क्लास
public abstract class AbstractClass<Type extends A> {...}
और कुछ बच्चे कक्षाओं निम्नलिखित है मैं एक सुंदर तरीका है कि कैसे मैं बच्चे कक्षाओं के सामान्य प्रकार का उपयोग कर सकते हैं (के लिए खोज कर रहा हूँ जेनेरिक टाइप, जेनेरिक टाइप, ...) एक सामान्य तरीके से अमूर्त वर्ग के अंदर।
इस समस्या को मैं वर्तमान में मेरे सार कक्षा में विधि परिभाषित
protected abstract Class<Type> getGenericTypeClass();
को सुलझाने और हर बच्चे को कक्षा में विधि लागू
@Override
protected Class<GenericType> getGenericTypeClass() {
return GenericType.class;
}
करने के लिए।
क्या इस सहायक विधि को लागू किए बिना मेरे अमूर्त वर्ग में सामान्य प्रकार के बाल वर्गों को प्राप्त करना संभव है?
बीआर,
मार्कस
मुझे समझ में नहीं आता कि टेस्ट के निर्माता में कोड वास्तव में क्या करता है, लेकिन यह काम करता है। अब मुझे अब सहायक सहायक तरीकों का उपयोग करने की ज़रूरत नहीं है। धन्यवाद :-) – Markus
यह प्रतिबिंब का उपयोग करता है।सबसे पहले यह कक्षा के जेनेरिक सुपरक्लास (java.lang.reflect.Type) को प्राप्त करता है, हमारे मामले में यह कभी भी शून्य नहीं होगा और हम जानते हैं कि यह एक पैरामीटरेट टाइप है, इसलिए हमने इसे कास्ट किया और विधि को निष्क्रिय करने के लिए एक्टुअल टाइप टाइप करें जो एक सरणी देता है वास्तविक प्रकार के तर्क उदा बी, प्रकार के। – naikus
अहह, आपके स्पष्टीकरण के लिए धन्यवाद। – Markus