खोज…
एक घोषणा की घोषणा
एनोटेशन मेटाडेटा को कोड में संलग्न करने के साधन हैं। एनोटेशन घोषित करने के लिए, एनोटेशन संशोधन को एक वर्ग के सामने रखें:
annotation class Strippable
एनोटेशन में मेटा-एनोटेशन हो सकते हैं:
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.EXPRESSION)
annotation class Strippable
अन्य वर्गों की तरह एनोटेशन में भी निर्माता हो सकते हैं:
annotation class Strippable(val importanceValue: Int)
लेकिन अन्य वर्गों के विपरीत, निम्न प्रकारों तक सीमित है:
- प्रकार जो जावा आदिम प्रकार (इंट, लॉन्ग आदि) के अनुरूप हैं;
- तार
- कक्षाएं (फू :: वर्ग)
- enums
- अन्य एनोटेशन
- ऊपर सूचीबद्ध प्रकारों के सरणियाँ
मेटा-एनोटेशन
एनोटेशन की घोषणा करते समय, मेटा-इंफॉर्मेशन को निम्नलिखित मेटा-एनोटेशन का उपयोग करके शामिल किया जा सकता है:
@Target: उन संभावित प्रकारों को निर्दिष्ट करता है, जिन्हें एनोटेशन (वर्ग, कार्य, गुण, भाव आदि) के साथ एनोटेट किया जा सकता है।@Retentionनिर्दिष्ट करता है कि क्या संकलित संकलित फ़ाइलों में संग्रहित है और क्या यह रनटाइम पर प्रतिबिंब के माध्यम से दिखाई दे रहा है (डिफ़ॉल्ट रूप से, दोनों सत्य हैं।)@Repeatableकिसी एकल तत्व पर कई बार एक ही एनोटेशन का उपयोग करने की अनुमति देता है।@MustBeDocumentedनिर्दिष्ट करता है कि एनोटेशन सार्वजनिक API का हिस्सा है और इसे जनरेट किए गए API दस्तावेज़ में दिखाए गए वर्ग या विधि हस्ताक्षर में शामिल किया जाना चाहिए।
उदाहरण:
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION,
AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.EXPRESSION)
@Retention(AnnotationRetention.SOURCE)
@MustBeDocumented
annotation class Fancy