Annotations परिभाषित करना: Elements और Defaults
@interface से custom annotations बनाएँ, default values वाले elements परिभाषित करें और meta-annotations लागू करें।
Annotations परिभाषित करना: Elements और Defaults, CoddyKit पर Java Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Java Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Java Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
एनोटेशन क्या हैं
एनोटेशन क्लास, विधियों, फ़ील्ड या पैरामीटर पर लागू किया गया मेटाडेटा होते हैं। वे सीधे व्यवहार नहीं बदलते — वे कंपाइलर, फ़्रेमवर्क या रनटाइम प्रोसेसर को जानकारी प्रदान करते हैं।
@interface से एनोटेशन घोषित करना
कस्टम एनोटेशन घोषित करने के लिए @interface का उपयोग करें। इसके एलिमेंट विधियों जैसे दिखाई देते हैं। डिफ़ॉल्ट मान default से निर्दिष्ट किया जाता है।
@interface Retry {
int times() default 3;
long delayMs() default 1000L;
Class<? extends Throwable>[] on() default {Exception.class};
}एनोटेशन लागू करना
एनोटेशन को लक्ष्य पर लागू करें। जिन एलिमेंट के डिफ़ॉल्ट मान हैं, उन्हें छोड़ सकते हैं। जब केवल एक एलिमेंट का नाम value हो, तो उसे कुंजी लिखे बिना सेट किया जा सकता है।
@Retry(times = 5, delayMs = 500)
public void callExternalService() { ... }
// Single-element shorthand:
@interface Label { String value(); }
@Label("production")
public class App {}एनोटेशन एलिमेंट के प्रकार
एलिमेंट केवल ये हो सकते हैं: प्रिमिटिव (int, long आदि), String, Class, कोई enum, कोई अन्य एनोटेशन प्रकार, या ऊपर दिए गए प्रकारों की एक-आयामी ऐरे।
@interface Config {
String host();
int port() default 8080;
LogLevel level() default LogLevel.INFO; // enum
Class<?> handler() default DefaultHandler.class;
String[] tags() default {};
}मेटा-एनोटेशन: @Retention
@Retention यह नियंत्रित करता है कि एनोटेशन कितने समय तक रखा जाए: SOURCE (कंपाइलर द्वारा हटा दिया जाता है), CLASS (.class में रहता है, लेकिन रनटाइम पर उपलब्ध नहीं होता), RUNTIME (रिफ़्लेक्शन के माध्यम से पढ़ा जा सकता है)।
@Retention(RetentionPolicy.RUNTIME)
@interface Retry {
int times() default 3;
}मेटा-एनोटेशन: @Target
@Target यह सीमित करता है कि एनोटेशन कहाँ लागू किया जा सकता है। एक से अधिक लक्ष्य सूचीबद्ध किए जा सकते हैं।
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@interface Audited {
String description() default "";
}@Documented और @Inherited
@Documented एनोटेशन को Javadoc में शामिल करता है। @Inherited सबक्लास को अपने सुपरक्लास से एनोटेशन विरासत में लेने देता है (केवल क्लास-स्तरीय एनोटेशन के लिए)।
@Documented
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@interface Category {
String value();
}@Repeatable एनोटेशन
किसी एनोटेशन को @Repeatable से चिह्नित करने पर उसे एक ही एलिमेंट पर कई बार लिखा जा सकता है। एक कंटेनर एनोटेशन प्रदान करें, जिसमें एक ऐरे हो।
@Repeatable(Tags.class)
@interface Tag { String value(); }
@interface Tags { Tag[] value(); }
@Tag("fast")
@Tag("stable")
public class Service {}डिफ़ॉल्ट मान और एलिमेंट छोड़ना
default मान वाले एलिमेंट को कॉल वाली जगह पर निर्दिष्ट करना आवश्यक नहीं होता। जिन एलिमेंट का कोई डिफ़ॉल्ट मान नहीं होता, वे अनिवार्य होते हैं।
@Retry // uses defaults: times=3, delayMs=1000
public void action1() {}
@Retry(times=1) // overrides only times; delayMs stays 1000
public void action2() {}एनोटेशन बनाम मार्कर इंटरफ़ेस
मार्कर इंटरफ़ेस (जैसे Serializable) को instanceof से जाँचा जाता है और वे प्रकार संबंधी जानकारी देते हैं। एनोटेशन अधिक लचीले होते हैं — वे मेटाडेटा रखते हैं और उनमें एलिमेंट हो सकते हैं।
सामान्य अंतर्निहित एनोटेशन
JDK के इन एनोटेशन को जानें: @Override, @Deprecated, @FunctionalInterface, @SuppressWarnings और @SafeVarargs।
@Override
public String toString() { return "User{" + name + "}"; }
@Deprecated(since = "2.0", forRemoval = true)
public void oldMethod() {}त्वरित जाँच
कौन-सी एकमात्र रिटेंशन नीति किसी एनोटेशन को रनटाइम पर पढ़ने योग्य बनाती है?
पुनरावृत्ति
एनोटेशन घोषित करने के लिए @interface का उपयोग करें। रिफ़्लेक्टिव प्रोसेसिंग के लिए @Retention(RUNTIME), उपयोग सीमित करने के लिए @Target और वैकल्पिक एलिमेंट के लिए default का उपयोग करें। @Repeatable से एनोटेशन को एक के ऊपर एक लिखा जा सकता है।
एआई शिक्षक के साथ Java सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 104
- पाठ
- 374
अक्सर पूछे जाने वाले प्रश्न
क्या “Annotations परिभाषित करना: Elements और Defaults” पाठ निःशुल्क है?
हाँ—“Annotations परिभाषित करना: Elements और Defaults” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Java Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Java Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“Annotations परिभाषित करना: Elements और Defaults” में मैं क्या सीखूँगा?
@interface से custom annotations बनाएँ, default values वाले elements परिभाषित करें और meta-annotations लागू करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Java Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Java Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Java Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“Annotations परिभाषित करना: Elements और Defaults” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Java Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Java Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Annotations परिभाषित करना: Elements और Defaults
- Retention Policies और Target Types
- Runtime Annotation Processing
- Compile-Time Annotation Processors