Birinchi qism. SOURCE va CLASS turlari bilan izohlar haqida juda qisqacha yozdim. Ikkinchi qismda adashib qolmaslik va biroz ko'proq "noto'g'ri tushunish" ni boshlash uchun o'qishga arziydi =) Bu erda, albatta, siz biladigan kamida bitta so'z bo'ladi!
Birinchi marta men ularni bu erda muammolarda ko'rganimda, men ularni qandaydir tarzda payqamadim. Xo'sh, Override osilgan, u IDEA tomonidan yozilgan, shuning uchun shunday bo'lishi kerak. Vaqt o'tishi bilan men hamma narsa ancha chuqurroq ekanligini angladim. Siz o'qiyotganingizda izohlar foydasiz, ammo zarur bo'lib tuyuladi. Nima uchun bunday qilishayotganini bilmaysiz. O'ylaymanki, men bir nechta maqolalarni o'qidim, ular "qanday ajoyib, endi bizda izohlar bor, hamma narsa juda oddiy bo'lib qoldi" deyishdi. Lekin men oldin qandayligini bilmasdim va endi osonroq ekanligini tushunmadim. Endi men bilaman va sizga bir oz aytib bermoqchiman. Izohlarning 3 turi mavjud (RetentionPolicy):
Mahalliy - hech qachon ko'rilmagan va ishlatilmagan. Menimcha, bu juda kam uchraydigan izoh, chunki... agar ular boshqa "ona" tilda kodni ishlatishlari kerak bo'lsa, undan foydalanadilar. Men unga aniq havola topishga harakat qildim, lekin qila olmadim.
SuppressWarnings - ko'pincha @SuppressWarnings("belgilanmagan") shaklida qo'llaniladi. Siz bilgan ogohlantirishlarni bostirish uchun foydalaniladi. Yuqoridagi misol tekshirilmagan turlarni translyatsiya qilish haqidagi ogohlantirishlarni bosadi. Shunga qaramay, men uni faqat ushbu shaklda va foydalanishda uchratdim.
Yaratilgan - vazifa mendan xsd fayllaridan sinflar yaratishni talab qilganda, men buni hozir uchratdim. Ushbu 3 ta izoh juda aniq va hozir sizni qiziqtirmaydi. Men oxirgisini tasvirlab beraman.
Bekor qilish - siz uni doimo ishlatasiz va u juda foydali ish qiladi. Usulni bekor qilishda xato qilish oson, agar IDEA buni qilmasa. Yozuv xatolari yoki shunchaki xatolar mavjud. Ushbu izoh ota-sinfdagi usul bizning (yorliqlangan) usul bilan bir xil bo'lishini ta'minlaydi. Bu bizga usulning bekor qilinishini va unga qo'shilmasligini kafolatlaydi. Kodni qayta tiklashda usulni olib tashlash yoki o'zgartirish mumkin. Shunga qaramay, izoh sizga xatoni ko'rsatadi. Busiz bizning usulimiz tugallangan bo'lar edi.
Zerikarlimi? Ha, bu maqoladan olib tashlash uchun juda ko'p foydali narsa yo'q, deb aytardim. Undagi deyarli hamma narsa (90%) siz foydalanmaydigan yoki ishlatmaydigan, lekin juda kamdan-kam hollarda bo'lgan narsa haqida. Qolgan 10% salom va birinchi qarashda foydasiz bo'lgan Override annotatsiyasining tavsifi. Xo'sh, menimcha, maqolaning ikkinchi qismi yanada qiziqarli bo'ladi. RUNTIME izohlari bo'ladi va ular real vaqtda kod bilan o'zaro ta'sir qiladi va qora sehr yaratadi. Izohlar. Ikkinchi qism. Lombok.
- SOURCE – kompilyator izohlari
- CLASS - izohdagi ma'lumotlar bayt kodiga yoziladi, lekin ish paytida mavjud bo'lmaydi. Ular standart kutubxonadagi ko'plab izohlar ushbu turdan foydalanishini yozadilar va endi ular orqaga qarab moslik tufayli uni saqlab qolishadi. Juda aniq vazifalar uchun ishlatiladi.
- StackOverflow-da savol va javob
- RUNTIME - eng mashhur, kod ishlayotganda ishlatiladi.
- 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
- Native - bu izoh ostidagi o'zgaruvchi mahalliy kodga murojaat qilishi mumkin;
- SuppressWarnings - kompilyatorning turli ogohlantirishlarini bostiradi;
- Yaratilgan - yaratilgan manba kodini belgilaydi;
- Override - usulning bekor qilinishini tekshiradi.
GO TO FULL VERSION