एक अमूर्त वर्ग के साथ साथ उपवर्ग मैं एक विधि है कि रिटर्न "इस" उपवर्गों के लिए निर्धारित करना चाहते हैं:रिटर्निंग एक वस्तुओं जेनरिक
CakeEater phil = new CakeEater();
phil.eat("wacky cake").eat("chocolate cake").eat("banana bread");
:
public abstract class Foo {
...
public <T extends Foo> T eat(String eatCake) {
...
return this;
}
}
public class CakeEater extends Foo {}
मैं जैसे कार्य करने में सक्षम होना चाहते
तर्कसंगत रूप से केले की रोटी एक अवैध अर्ग्यूमेंट अपवाद को "एक केक नहीं" संदेश के साथ फेंक देगा!
होना चाहिए 'Foo>' बढ़ाता है। यह काम करता है, यद्यपि आप आसानी से एक कक्षा बना सकते हैं जो 'क्लासकास्ट अपवाद' के साथ उड़ाएगा जब आप 'खाने' कहते हैं, जैसे 'कक्षा बार Foo ' बढ़ाता है। –
ColinD
यह वह समाधान है जिसका मैंने उपयोग समाप्त किया, लेकिन आप देखेंगे कि रिटर्न में एक अनचेक कास्ट चेतावनी है। तर्कसंगत रूप से यह समझ में आता है कि हम टी को डाल सकते हैं क्योंकि यह टी – Sarabjot
हां का उप-वर्ग है।एक बेहतर दुनिया में, जावा में 'यह' प्रकार हो सकता है, जो कई मामलों में बहुत उपयोगी होगा। – irreputable