2015-08-27 9 views
6

क्या अर्थ एनोटेशन एंड्रॉयड/जावा प्रोग्रामिंग में अर्थ और उद्देश्य @Injectऔर/या@InjectView एनोटेशन की?एंड्रॉयड @Inject और @InjectView

मैं इसका उपयोग कैसे कर सकता हूं?

अग्रिम धन्यवाद!

+0

मुझे पता है कि लोग सामान्य रूप से आवश्यक कोड की तुलना में कोड की कम लाइनों के साथ लेआउट सेट करने के लिए बटरनाइफ के साथ इनका उपयोग करते हैं: https://github.com/JakeWharton/butterknife – joshgoldeneagle

+0

हां, मैं इस एनोटेशन में आया हूं, और वहां हैं इतने सारे पुस्तकालय जो इसका उपयोग करते हैं, लेकिन मुझे नहीं पता कि कैसे और उद्देश्य। –

उत्तर

9

एंड्रॉइड के लिए, ये एनोटेशन Roboguice framework का हिस्सा हैं। इन्हें एंड्रॉइड वातावरण में dependency injection प्रदान करने के लिए उपयोग किया जाता है।

यह आपको वांछित संसाधन का एक उदाहरण इंजेक्ट करने की अनुमति देता है, भले ही यह मूल POJO, एक दृश्य, या कोई अन्य संसाधन हो।

class MyActivity extends RoboActivity { 
    @Inject Foo foo; // this will basically call new Foo(); 
} 

यह एक छोटी सी एक है, लेकिन अनिवार्य रूप से इंजेक्शन बिंदु अपने वर्ग बनाने/इंजेक्शन फू वर्ग का एक उदाहरण के प्रबंधन के लिए स्वतंत्र रहने की अनुमति है और इसके बजाय उस पर जिम्मेदारी डालता है: यहाँ RoboGuice wiki से एक POJO उदाहरण है इस मामले में फू के डिफ़ॉल्ट कन्स्ट्रक्टर को कॉल करके खुद को फू। यह मोक्स जैसे कुछ के माध्यम से आसान परीक्षण की अनुमति देता है क्योंकि MyActivity वास्तविक निर्माण Foo के विवरण से मुक्त है।

+0

ठीक है, लेकिन @ इंजेक्शन एनोटेशन का उद्देश्य क्या है? –

+0

उत्तर में थोड़ा सा जोड़ा गया। यह गहराई से नहीं जाता है, लेकिन उम्मीद है कि लिंक कुछ मार्गदर्शन प्रदान करते हैं। – whitlaaa

+0

मेरे पास एक वर्ग है जो 'रोबोएक्टिविटी' बढ़ाता है, जैसा आपने बताया है, और यह इस तरह @ इंजेक्ट का उपयोग करता है: @ इंजेक्ट निजी सेंसर मैनेजर सेंसर प्रबंधक; @ इंजेक्ट निजी साझा किए गए प्राथमिकताएं prefs; उदाहरण के लिए साझा किए गए संदर्भों को इंजेक्ट करना क्यों उपयोगी है? और यह बिना किसी निर्माण के सेट या 'सेट' के मूल्यों को 'प्राप्त' करने में सक्षम कैसे है? –

संबंधित मुद्दे