मुझे इस समस्या को हल करने के लिए एक शानदार तरीका नहीं मिला है। मेरे पास एक अमूर्त वर्ग है कि कई अन्य वर्ग एक अमूर्त विधि के साथ विरासत में हैं जो अलग-अलग प्रकार के शून्य से 4-5 तर्कों में कहीं भी हो सकते हैं।तर्कों की परिवर्तनीय सूची के साथ सार विधि
public abstract class Item {
public abstract void use();
}
उदाहरण के लिए, मैं एक पुस्तक वर्ग है कि इस विरासत और जब उपयोग(), मैं एक कुंजी वर्ग कि विरासत और एक स्ट्रिंग और एक कतार तर्कों के रूप जब अधिभावी, आदि लगता है अधिभावी कोई तर्क लेता है ..
मैंने जेनेरिक का उपयोग करने की कोशिश की है, लेकिन मुझे आइटम पर इस्तेमाल होने वाली संख्या को इनपुट करना होगा, जब यह वास्तव में कक्षा पर निर्भर करता है।
public abstract class Item<T,U> {
public abstract void use(T arg1, U arg2); //Number of arguments/types could be more or less
}
मैं वस्तुओं की एक चर सूची भेजने की कोशिश की है लेकिन वस्तु प्रकार हमेशा परिवर्तनशील हैं और मैं वाक्य रचना के रूप में अनिश्चित है इनहेरिट कक्षाओं में प्राप्त करने के लिए।
public abstract class Item<T> {
public abstract void use(T... arguments);
}
public class Book extends Item<?> {
public void use(?);
}
public class Book extends Item<String, Queue> { //Wrong number of arguments since I can't use Item<T...>
public void use(String str, Queue q); //fails
}
मैं कुछ गलत कर रहा हूं - क्या कोई भी सहायता या अंतर्दृष्टि प्रदान कर सकता है?
यदि आप 'आइटम इसे = नई पुस्तक(); 'करते हैं, तो आप' बुक.यूज (स्ट्रिंग, कतार) विधि को कॉल करने का प्रस्ताव कैसे देते हैं; 'यदि संकलक को यह नहीं पता कि सही तर्क प्रकार क्या हैं ? और यदि आप माता-पिता वर्ग के चर में 'आइटम' का उप-वर्ग नहीं होने की अपेक्षा करते हैं, तो विधि को सार तत्व क्यों होना चाहिए? – millimoose