कंपाइलर चेकिंग से लाभ उठाने के लिए आपको हमेशा ओवरराइड एनोटेशन का उपयोग करना चाहिए। लेकिन यह मत भूलो कि इंटरफ़ेस के तरीकों को ओवरराइड करते समय जावा कंपाइलर 1.5 इस एनोटेशन की अनुमति नहीं देगा। आप इसे कक्षा विधियों (सार, या नहीं) को ओवरराइड करने के लिए उपयोग कर सकते हैं।
कुछ आईडीई, ग्रहण के रूप में, यहां तक कि जावा 1.6 रनटाइम या उच्चतर के साथ कॉन्फ़िगर किया गया है, वे जावा 1.5 का अनुपालन बनाए रखते हैं और ऊपर वर्णित अनुसार @override का उपयोग करने की अनुमति नहीं देते हैं। उस व्यवहार से बचने के लिए आपको जाना चाहिए: प्रोजेक्ट गुण -> जावा कंपाइलर -> "प्रोजेक्ट विशिष्ट सेटिंग्स सक्षम करें" -> "कंपाइलर कंप्लायंस स्तर" = 6.0, या उच्चतर चुनें।
मैं हर बार इस एनोटेशन का उपयोग करना पसंद करता हूं जब मैं स्वतंत्र रूप से एक विधि को ओवरराइड कर रहा हूं, अगर आधार एक इंटरफ़ेस या वर्ग है।
यह आपको कुछ विशिष्ट त्रुटियों से बचने में मदद करता है, जैसे कि जब आप सोच रहे हों कि आप किसी ईवेंट हैंडलर को ओवरराइड कर रहे हैं और तब आपको कुछ भी नहीं हो रहा है। कल्पना कीजिए कि आप कुछ यूआई घटक के लिए एक इवेंट श्रोता जोड़ना चाहते हैं:
someUIComponent.addMouseListener(new MouseAdapter(){
public void mouseEntered() {
...do something...
}
});
उपरोक्त कोड संकलित करता है और चलता है, लेकिन यदि आप माउस को किसी तरह ले जाते हैं तो कुछ "डू कुछ" कोड चला जाएगा, क्योंकि वास्तव में आप आधार विधि को ओवरराइड नहीं कर रहे हैं mouseEntered(MouseEvent ev)
। आप बस एक नया पैरामीटर-कम विधि बनाएँ mouseEntered()
। उस कोड के बजाय, यदि आपने @Override
एनोटेशन का उपयोग किया है तो आपने एक संकलन त्रुटि देखी है और आप यह सोचकर समय बर्बाद नहीं कर रहे हैं कि आपका ईवेंट हैंडलर क्यों नहीं चल रहा था।