সংকলক চেকিং থেকে সুবিধা নিতে আপনার সর্বদা ওভাররাইড টীকাটি ব্যবহার করা উচিত। তবে ভুলে যাবেন না যে জাভা সংকলক 1.5 এই ইন্টারফেস পদ্ধতিগুলিকে ওভাররাইড করার সময় এই টীকাটিকে অনুমতি দেবে না। আপনি কেবল এটি ক্লাসের পদ্ধতিগুলিকে ওভাররাইড করতে ব্যবহার করতে পারেন (বিমূর্ত বা না)।
কিছু আইডিই, যেমন ইক্লিপস, এমনকি জাভা ১.6 রানটাইম বা ততোধিক সময়ের সাথে কনফিগার করা হয়েছে, তারা জাভা ১.৫ এর সাথে সম্মতি বজায় রাখে এবং উপরে বর্ণিত হিসাবে @override ব্যবহারের অনুমতি দেয় না। এই আচরণটি এড়াতে আপনার অবশ্যই যেতে হবে: প্রকল্পের বৈশিষ্ট্য -> জাভা সংকলক -> "প্রকল্প নির্দিষ্ট সেটিংস সক্ষম করুন" -> "সংকলক সম্মতি স্তর" = 6.0 বা তার চেয়ে বেশি চয়ন করুন।
বেসটি যদি ইন্টারফেস বা শ্রেণি হয় তবে প্রতিবারই আমি স্বতন্ত্রভাবে কোনও পদ্ধতিকে ওভাররাইড করছি এই টিকাটি ব্যবহার করতে চাই।
এটি আপনাকে কিছু সাধারণ ত্রুটিগুলি এড়াতে সহায়তা করে, যেমন আপনি যখন ভাবছেন যে আপনি কোনও ইভেন্ট হ্যান্ডলারকে ওভাররাইড করছেন এবং তারপরে আপনি কিছুই ঘটছেন না তা দেখে। কল্পনা করুন আপনি কিছু ইউআই উপাদানতে ইভেন্ট শ্রোতা যুক্ত করতে চান:
someUIComponent.addMouseListener(new MouseAdapter(){
public void mouseEntered() {
...do something...
}
});
উপরের কোডটি সংকলন করে চালান, তবে আপনি কিছু ইউআইকিউম্পোন্টের ভিতরে মাউসটি সরিয়ে ফেললে "কিছু করুন" কোডটি রান নোটটি লক্ষ্য করবে, কারণ বাস্তবে আপনি বেস পদ্ধতিটি ওভাররাইড করছেন না mouseEntered(MouseEvent ev)
। আপনি কেবল একটি নতুন প্যারামিটার-কম পদ্ধতি তৈরি করেছেন mouseEntered()
। সেই কোডটির পরিবর্তে, আপনি যদি @Override
টীকাটি ব্যবহার করে থাকেন তবে আপনি একটি সংকলন ত্রুটি দেখেছেন এবং কেন আপনার ইভেন্ট হ্যান্ডলারটি চালাচ্ছে না তা ভেবে সময় নষ্ট করছেন না।