Middle
@CallSuper annotatsiyasi nima uchun kerak?
sobes.tech AI
AIdan javob
@CallSuper annotatsiyasi, qaysi metodani (subklassda) qayta yozish majburiy bo'lishi uchun superklass metodining amalga oshirilishini chaqirish kerakligini ko'rsatish uchun ishlatiladi.
Bu quyidagi hollarda foydalidir:
- Superklass holati: Superklass o'z metodida muhim holatni boshlash yoki boshqarish mumkin.
@CallSuperchaqiruvi, bu holatning har qanday subklasslarda to'g'ri boshqarilishini kafolatlaydi. - Resurslar/Tozalash: Superklass o'z metodida resurslarni boshqarishi yoki tozalash harakatlarini amalga oshirishi mumkin.
@CallSuperbu harakatlarning metodni qayta yozishda ham bajarilishini kafolatlaydi. - Xulq-atvor shartnomasi: Anotatsiya, superklassning amalga oshirilishi umumiy xulq-atvorning bir qismi ekanligini ko'rsatadi, uni subklasslar saqlashlari kerak.
Foydalanish misoli:
public class BaseActivity extends AppCompatActivity {
@Override
@CallSuper // onCreate() superklassdan chaqirilishi kerakligini ko'rsatadi
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Asosiy komponentlarni boshlash
}
}
public class MyActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); // Majburiy chaqirish
// MyActivity uchun qo'shimcha boshlash
}
}
Muhim: @CallSuper kod tahlil qilish vositalari (masalan, Lint) uchun ko'rsatma bo'lib, kompilatsiya darajasida majburiy talab emas. Bu annotatsiya bilan belgilangan metod super() chaqirmasdan qayta yozilgan bo'lsa, ogohlantirish chiqariladi.