सी # के विस्तार विधियां वाक्य रचनात्मक चीनी जोड़ने के लिए बहुत अच्छी हैं। पुस्तकालय डेवलपर्स को उनके इंटरफेस में विधियों को जोड़ने की अनुमति देने के लिए जावा एक्सटेंशन विधियां बहुत अच्छी हैं।जावा के पास गैर-लाइब्रेरी डेवलपर्स के विस्तार विधियों का उपयोग करने का कोई तरीका होगा?
मैं एक गैर पुस्तकालय जावा डेवलपर हूं और जानता हूं कि मैं पुस्तकालयों से नई कार्यक्षमता प्राप्त करने से बहुत सारे लाभ प्राप्त करूंगा, लेकिन मैं अभी भी सी # एक्सटेंशन विधियों की सिंटैक्टिक चीनी क्षमताओं को प्राप्त करना चाहता हूं।
क्या यह जावा के भविष्य के संस्करणों में संभव है, या यह संभव होगा?
उदाहरण के लिए: मैं स्ट्रिंग वर्ग के लिए तरीकों को जोड़ने के लिए ...
String data = StringUtils.capitalize("abcd"); // instead of this
String data = "abcd".capitalize() // I would like to do this
कृपया इस विशिष्ट उदाहरण पर ध्यान केंद्रित नहीं है, मैं केवल कार्यक्षमता के वर्ग मैं करने में सक्षम होना चाहता हूँ दिखा रहा चाहते हैं प्राप्त।
जावा में इस फैशन में विस्तारित कक्षाओं के लिए "प्राणियों" के लिए तंत्र नहीं है। कुछ ट्रिक्स हैं जिन्हें कुछ डीबगिंग टूल के साथ खेला जा सकता है, लेकिन वे डीबग परिदृश्य के बाहर उपयोग के लिए नहीं हैं। –
ध्यान दें कि सामान्य रूप से "पुस्तकालय डेवलपर्स" और "एप्लिकेशन डेवलपर्स" (कम से कम जावा दुनिया में) के बीच कोई कठोर सीमा नहीं है। यदि किसी दिए गए सुविधा पुस्तकालयों के लिए उपलब्ध है, तो इसका उपयोग अनुप्रयोगों में भी किया जा सकता है। माना जाता है कि कुछ विशेषताओं की जटिलता पुस्तकालयों में इसका उपयोग करने की अधिक संभावना बनाती है। उदाहरण के लिए: * लेखन * एपीआई जो जटिल परिदृश्यों में जेनेरिक का अच्छा उपयोग करते हैं, बहुत कठिन है, इसलिए आमतौर पर यह केवल (पुन: प्रयोज्य) पुस्तकालयों में किया जाता है। * * ऐसे एपीआई का उपयोग करना बहुत आसान है (यदि एपीआई अच्छी तरह डिज़ाइन किए गए हैं)। –