जावा में function objects
(एक ऐसी ऑब्जेक्ट जो निर्यात करता है जो अन्य ऑब्जेक्ट्स पर काम करता है) बनाने का सबसे अच्छा अभ्यास क्या है?जावा में फ़ंक्शन ऑब्जेक्ट्स को निर्यात करने का सबसे अच्छा अभ्यास क्या है?
उत्तर
यह forthcoming Java 8 functional interfaces
जावा 8 वर्ग पुस्तकालय को देखने के लिए शिक्षाप्रद है एक नए पैकेज, java.util.functions, जो कई नए कार्यात्मक इंटरफेस शामिल है। इनमें से कई को संग्रह API के साथ का उपयोग किया जा सकता है।
यदि आप यहां प्रदर्शित पैटर्न का पालन करते हैं, तो आपके पास एक कार्यात्मक इंटरफेस (एक विधि का समर्थन करने वाला इंटरफ़ेस) होगा और कोई सदस्य नहीं होगा। आपके फ़ंक्शन ऑब्जेक्ट को विधि तर्कों पर किसी भी विधि को कॉल नहीं करना चाहिए जो उनके राज्य को बदल सकता है (यानी साइड इफेक्ट्स प्रदर्शित करता है)। दुर्भाग्यवश आप इसे लागू नहीं कर सकते - आपको इसके लिए सम्मेलन पर भरोसा करना है।
क्या इसे कार्यात्मक भाषाओं के साथ लागू किया जा सकता है? – Geek
मुझे विश्वास है कि अपरिवर्तनीयता लागू करने वाली भाषाएं इसे लागू कर सकती हैं। शायद सी ++ और इसके मजबूत कॉन्स अर्थशास्त्र, हालांकि मैं इस पर उद्धृत नहीं करना चाहूंगा! –
जावा एक ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग भाषा है, इसलिए रणनीति डिजाइन पैटर्न का उपयोग करें।
जबकि रणनीतियां यहां काम करती हैं, केवल एक विधि को लागू करने के लिए एक रणनीति वस्तु की आवश्यकता नहीं होती है, क्योंकि एक कार्यात्मक वस्तु की आवश्यकता होती है –
जावा 8 में कार्यात्मक इंटरफेस कार्यान्वयन के निर्माण को कम करने के लिए लैम्ब्डा होना चाहिए। Java8 इससे पहले कि आप क्या अमरूद पुस्तकालय प्रस्तावों पर विचार कर सकता: समारोह है, जो है एक विधि बी लागू होते हैं:
अमरूद दो बुनियादी "कार्यात्मक" इंटरफेस प्रदान करता है: Functional Explained
यहाँ प्रलेखन का एक अंश है (एक इनपुट)। फ़ंक्शन के उदाहरण आमतौर पर पारदर्शी रूप से पारदर्शी होने की अपेक्षा की जाती हैं - कोई साइड इफेक्ट्स नहीं - और बराबर के साथ संगत होने के लिए, यानी, असमान (बी) का अर्थ है कि function.apply (a) .equals (function.apply (b))। पूर्वानुमान, जिसमें एकल विधि बूलियन लागू होता है (टी इनपुट)। भविष्यवाणी के उदाहरण आम तौर पर साइड-इफेक्ट-फ्री और बराबर के साथ संगत होने की उम्मीद है।
टिप्पणी के बाद ठीक है, यहां एक उत्तर है: कोई फ़ंक्शन पास करने का कोई आसान/सुविधाजनक तरीका नहीं है।
अधिकांश समयआप एक आंतरिक वर्ग जो उदाहरण के लिए की तरह एक अंतरफलक को लागू करता घोषणा करेंगे, Comparator
: http://docs.oracle.com/javase/6/docs/api/java/util/Comparator.html
तथ्य यह है कि कार्यों पारित नहीं किया जा सकता है के रूप में मानकों तथाकथित डिजाइन पैटर्न का एक बहुत को जन्म दिया , जहां आप वस्तुओं के वर्ग/इंटरफेस के आसपास गुजरते हैं जो उन कार्यों को घोषित करते हैं।
दूसरों जीवन ने उल्लेख किया जावा 8. साथ थोड़ा आसान हो जाएगा
- 1. ऑब्जेक्ट्स नामकरण गुणों के लिए सबसे अच्छा अभ्यास क्या है?
- 2. एक्सएमएल को जावा ऑब्जेक्ट में परिवर्तित करने में सबसे अच्छा अभ्यास क्या है?
- 3. जावा enum सबसे अच्छा अभ्यास
- 4. जावा में तिथियों में हेरफेर करने और संग्रहीत करने के लिए सबसे अच्छा अभ्यास क्या है?
- 5. जावा में जावा को पार्स करने का सबसे अच्छा तरीका
- 6. अभी दृढ़ता के लिए सबसे अच्छा अभ्यास क्या है?
- 7. क्या जावा में जोर देने का अच्छा अभ्यास है?
- 8. i18n उपयोग जावा को लागू करने के लिए सबसे अच्छा अभ्यास क्या है?
- 9. सबसे अच्छा अभ्यास परिणाम
- 10. डेटाबेस में "सहेजी गई खोज" को संग्रहीत करने का सबसे अच्छा अभ्यास क्या है
- 11. आईफोन एप्लिकेशन में त्रुटियों/घटनाओं को लॉग करने का सबसे अच्छा अभ्यास क्या है?
- 12. रेल में शब्दों को कैपिटल करने का सबसे अच्छा अभ्यास क्या है?
- 13. जावास्क्रिप्ट ऑब्जेक्ट्स को एक्सएमएल में क्रमबद्ध करने का सबसे अच्छा तरीका क्या है?
- 14. जावा - क्या यह अच्छा प्रोग्रामिंग अभ्यास है?
- 15. क्या पर्ल में चर निर्यात करने के लिए यह अच्छा अभ्यास है?
- 16. टाइमज़ोन रूपांतरणों के लिए सबसे अच्छा अभ्यास क्या है?
- 17. सी # में निजी और स्थैतिक निजी तरीकों का नामकरण करने का सबसे अच्छा अभ्यास क्या है?
- 18. एक साबुन सेवा (जेनेरिक बनाम विशिष्ट ऑपरेशन) को परिभाषित करने में सबसे अच्छा अभ्यास क्या है?
- 19. django + Pymongo पूलिंग का सबसे अच्छा अभ्यास?
- 20. एक कैसंद्रा डेटा मॉडल डिजाइन करने में सबसे अच्छा अभ्यास क्या है?
- 21. सी ++ पब्लिक एपीआई के लिए सबसे अच्छा अभ्यास क्या है?
- 22. क्या यह जावास्क्रिप्ट में स्थिरांक को स्ट्रिंग अक्षर निकालने का सबसे अच्छा अभ्यास है?
- 23. पावरशेल: फ़ंक्शन नाम विशिष्टता सुनिश्चित करने का सबसे अच्छा तरीका?
- 24. जावा एनम दस्तावेज करने के लिए जावाडॉक का उपयोग करने का सबसे अच्छा तरीका क्या है?
- 25. जावा में नेस्टेड क्लास/ऑब्जेक्ट/एनम स्ट्रक्चर को परिभाषित करने का सबसे अच्छा तरीका क्या है?
- 26. ओपन सोर्स प्रोजेक्ट को फोर्क करने का सबसे अच्छा अभ्यास क्या है?
- 27. एक फ्लोट को 2 दशमलव तक गोल करने का सबसे अच्छा अभ्यास क्या है?
- 28. एकाधिक सबव्यूज़ व्यवस्थित करने का सबसे अच्छा तरीका क्या है?
- 29. , EJB3 माना सबसे अच्छा अभ्यास
- 30. दो टाइमस्पैन ऑब्जेक्ट्स को विभाजित करने का सबसे अच्छा तरीका क्या है?
आप 'Comparator' इंटरफेस को देखकर कुछ प्रेरणा मिल सकता है: http://docs.oracle.com/javase/6/docs /api/java/util/Comparator.html। यह एक खुला अंत प्रश्न है। –
संभव डुप्लिकेट [जावा में फ़ंक्शन पॉइंटर के लिए निकटतम विकल्प क्या है?] (Http://stackoverflow.com/questions/122407/whats-the-nearest-substitute-for-a-function-pointer-in-java) – Raedwald