2015-02-06 38 views
13

में डैगर के 2 @ नामांकित क्वालीफायर का उपयोग कैसे करें हाल ही में मुझे कोटलिन में @Named क्वालीफायर के साथ समस्या थी। मैंने सोचा था कि इस से बदल रहा है कि:कोटलिन

var boldTypeface: Typeface? = null 
[Inject] set 

इस

var boldTypeface: Typeface? = null 
[Inject Named("bold")] set 

या

var boldTypeface: Typeface? = null 
[Inject] [Named("bold")] set 

में मेरी समस्या का समाधान होगा। लेकिन ऐसा नहीं हुआ, यह संकलन भी नहीं है।

उत्तर

33

मुझे कोटलिन में बहुत सुधार हुआ क्योंकि मुझे अपना जवाब अपडेट करना पड़ा। अभी मैं Kotlin 1.0 का उपयोग कर रहा बीटा 3

ठीक से एक संपत्ति आप @field एनोटेशन का उपयोग करने के लिए एक से अधिक एनोटेशन सेट करने के लिए:

@field:[Inject Named("bold")] 
lateinit var boldTypeface: Typeface 

ध्यान दें कि मैं lateinit यहाँ उपयोग कर रहा हूँ तो नल का उपयोग करने की आवश्यकता नहीं है टाइप करें Typeface?

+3

सीएएन आप कृपया '@ इंजेक्ट' और '@ नामांकित ("बोल्ड") के वर्तमान एनोटेशन सिंटैक्स का उपयोग करने के लिए कोड नमूना अपडेट करें,' –

+0

@ जेसन मॉनार्ड मैं चाहता हूं लेकिन इसके साथ वास्तव में क्या गलत है? मुझे कोटलिन के दस्तावेज़ों में समान दृष्टिकोण दिखाई देता है http://kotlinlang.org/docs/reference/annotations.html#annotation-use-site-targets –

+0

सही प्रारूप पर मेरी टिप्पणी के बाद आपने पहले ही संपादन (5 जनवरी) किया है। –