2011-11-08 16 views
16
जावा डॉक से

:एनोटेशन स्रोत अवधारण नीति

वर्ग: एनोटेशन संकलक द्वारा वर्ग फ़ाइल में दर्ज हो रहे हैं लेकिन रन टाइम पर वीएम द्वारा बनाए रखा होने की जरूरत नहीं।

रनटाइम: एनोटेशन संकलक द्वारा वर्ग फ़ाइल में दर्ज की गई और रन टाइम पर वीएम अपने पास रख लिए हैं, इसलिए वे संजीदगी से पढ़ा जा सकता है।

स्रोत: एनोटेशन को संकलक द्वारा त्याग दिया जाना है।

मैं (संकलक के लिए) और कक्षा (क्रम प्रतिबिंब के साथ एनोटेशन का उपयोग करने के) रनटाइम का प्रयोग समझते हैं लेकिन मुझे समझ नहीं आता जब यह

@Retention (RetentionPolicy उपयोग करने के लिए उपयोगी हो सकता है। स्रोत)

क्या आप समझा सकते हैं?

उत्तर

13

@SuppressWarnings, @Override जैसी चीजें संकलक द्वारा उपयोग की गई टिप्पणियां हैं - रनटाइम पर आवश्यक नहीं है। उन retentionPolicy.SOURCE के लिए समझ में आता है। कोड उत्पन्न करने के लिए एनोटेशन का भी उपयोग किया जा सकता है (स्प्रिंग आरओओ देखें) - इस तरह के एनोटेशन को रन टाइम पर भी जरूरी नहीं है।

+4

और क्यों RetentionPolicy.CLASS नहीं? – JohnJohnGa

+1

+1: कंपाइलर द्वारा उपयोग की जाने वाली कुछ टिप्पणियां क्लास प्रतिधारण हैं। –

+1

उन बाइटकोड (.class फ़ाइल में) में आवश्यक नहीं हैं। – gkamal

संबंधित मुद्दे