खोज…
एक घोषणा की घोषणा
एनोटेशन मेटाडेटा को कोड में संलग्न करने के साधन हैं। एनोटेशन घोषित करने के लिए, एनोटेशन संशोधन को एक वर्ग के सामने रखें:
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