भाग 1. मी SOURCE आणि CLASS प्रकाराच्या भाष्यांबद्दल थोडक्यात लिहिले आहे. हे वाचण्यासारखे आहे, जेणेकरुन दुस-या भागात हरवू नये आणि तुमचा "गैरसमज" थोडा वाढवा =) मी वचन देतो की तुम्हाला माहित असलेला किमान एक शब्द नक्कीच असेल! जेव्हा मी प्रथमच येथे कार्यांमध्ये भाष्ये पाहिली तेव्हा मी त्यांच्याकडे जास्त लक्ष दिले नाही. येथे @Override आहे, परंतु IDEA ते जोडते, म्हणून मला वाटले की ते तसे असावे. कालांतराने, मला समजले की सर्वकाही खूप खोल आहे. तुम्ही अभ्यास करत असताना भाष्ये काहीशी निरुपयोगी पण आवश्यक वाटू शकतात. ते का अस्तित्वात आहेत किंवा ते काय करतात हे तुम्हाला माहीत नाही. तुम्ही काही लेख वाचले आहेत ज्यात म्हटले आहे की, "हे इतके छान आहे की आमच्याकडे आता भाष्ये आहेत, सर्व काही इतके सोपे झाले आहे." पण मला आधी गोष्टी कशा होत्या हे माहित नव्हते आणि आता गोष्टी सोप्या झाल्या आहेत हे मला समजत नव्हते. आता मला माहित आहे आणि मला थोडे सामायिक करायचे आहे. 3 प्रकारचे (रिटेन्शन पॉलिसी) भाष्ये आहेत:
मूळ — मी हे कधीही पाहिले नाही आणि वापरले नाही. मला वाटते की हे एक दुर्मिळ भाष्य आहे, कारण जेव्हा तुम्हाला दुसर्या "नेटिव्ह" भाषेत कोड चालवायचा असेल तेव्हा ते वापरले जाते. मी त्याचा स्पष्ट उल्लेख शोधण्याचा प्रयत्न केला आणि अयशस्वी झालो.
SuppressWarnings — हे भाष्य बर्याचदा असे वापरले जाते: @SuppressWarnings("अनचेक"). तुम्हाला आधीच माहिती असलेल्या इशाऱ्यांना दडपण्यासाठी याचा वापर केला जातो. मागील उदाहरण अनचेक प्रकारच्या रूपांतरणांबद्दल चेतावणी दडपते. पुन्हा, हा एकमेव वापर आहे ज्याचा मी सामना केला आहे.
व्युत्पन्न — मला XSD फायलींमधून वर्ग व्युत्पन्न करावे लागणाऱ्या असाइनमेंटमुळे मी आत्ता या भाष्यात जात आहे. ही 3 भाष्ये अगदी विशिष्ट आहेत आणि सध्या तुम्हाला स्वारस्य नसण्याची शक्यता आहे. मी शेवटचे वर्णन करीन.
ओव्हरराइड — तुम्ही ते सतत वापरता आणि ते खूप उपयुक्त काहीतरी करते. एखादी पद्धत ओव्हरराइड करताना, IDEA च्या मदतीशिवाय चूक करणे सोपे आहे. टायपिंगच्या चुका असोत किंवा साध्या चुका, चुका होतात. हे भाष्य हे सुनिश्चित करेल की पालक वर्गातील पद्धत आमच्या (नोटेटेड) पद्धतीशी जुळते. हे सुनिश्चित करते की पद्धत जोडण्याऐवजी ओव्हरराइड केली जाईल. कोड रिफॅक्टरिंग करताना, मूळ पद्धत काढली किंवा बदलली जाऊ शकते. पुन्हा, हे भाष्य त्रुटी दर्शवेल. त्याशिवाय, आमची पद्धत फक्त जोडली जाईल. कंटाळवाणा? मी हो म्हणेन. या लेखातून गोळा करण्यासाठी फारसे उपयुक्त नाही. येथे जवळजवळ प्रत्येक गोष्ट (90%) आपण कधीही वापरणार नाही किंवा अगदी क्वचितच असे काही वर्णन करते. उर्वरित 10% @Override भाष्याला नमस्कार करत आहेत आणि त्याचे वर्णन करत आहेत, जे पहिल्या दृष्टीक्षेपात निरुपयोगी आहे. ते म्हणाले, मला वाटते की लेखाचा दुसरा भाग अधिक मनोरंजक असेल. तेथे RUNTIME भाष्यांवर चर्चा होईल — ते अंमलबजावणी दरम्यान कोडशी संवाद साधतात आणि काळी जादू करतात. भाष्ये. भाग 2. लोंबोक
- स्रोत - कंपाइलरसाठी भाष्ये
- वर्ग - भाष्यातील माहिती बायकोडमध्ये लिहिली जाईल परंतु रनटाइमवर उपलब्ध नाही. ते म्हणतात की मानक लायब्ररीमध्ये या प्रकारच्या अनेक भाष्ये आहेत, जी आता मागास अनुकूलतेसाठी राखून ठेवली आहेत. हे अतिशय विशिष्ट कामांसाठी वापरले जाते.
- StackOverflow वर प्रश्नोत्तरे
- रनटाइम — ही भाष्ये सर्वात लोकप्रिय आहेत. कोड कार्यान्वित होत असताना ते वापरले जातात.
- java/lang/annotation/Native.class;
- java/lang/SuppressWarnings.class
- javax/annotation/Generated.class
- java/lang/Override.class
- com/sun/istack/internal/Nullable.class
- com/sun/istack/internal/NotNull.class
- com/sun/istack/internal/Interned.class
- नेटिव्ह — या भाष्यासह व्हेरिएबल मूळ कोडचा संदर्भ घेऊ शकते;
- SuppressWarnings — हे भाष्य विविध कंपाइलर चेतावणी दडपते;
- व्युत्पन्न — हे भाष्य व्युत्पन्न केलेला स्त्रोत कोड चिन्हांकित करते;
- ओव्हरराइड — ही भाष्य पद्धत ओव्हरराइड तपासते.
GO TO FULL VERSION