Java annotatsiyalar
Java annotatsiyalar
Annotatsiyalar — Java kodingizga qo‘shadigan maxsus qaydlaringiz. Ular @ belgisi bilan boshlanadi.
Ular dasturingiz qanday ishlashini o‘zgartirmaydi, lekin kompilyator yoki vositalarga qo‘shimcha ma’lumot beradi.
O‘rnatilgan annotatsiyalar
Java bir nechta o‘rnatilgan annotatsiyalarni o‘z ichiga oladi. Quyida eng ko‘p ishlatiladiganlari keltirilgan:
| Annotatsiya | Tavsif |
|---|---|
@Override |
Metod ota sinfdagi (superclass) metodni qayta aniqlashini (override) bildiradi |
@Deprecated |
Metod yoki sinfni eskirgan yoki ishlatish tavsiya etilmaydigan deb belgilaydi |
@SuppressWarnings |
Kompilyatorga ba’zi ogohlantirishlarni e’tiborsiz qoldirishni buyuradi |
@Override annotatsiyasi
@Override annotatsiyasi kompilyatorga metod haqiqatan ham ota sinfdagi metodni qayta aniqlayotganini tekshirishda yordam beradi.
U majburiy emas, lekin xatolarni aniqlashga yordam bergani uchun uni ishlatish qat’iy tavsiya etiladi.
Ushbu misolda metodni qayta aniqlayotganimizni aniq ko‘rsatamiz:
Misol
class Animal {
void makeSound() {
System.out.println("Animal sound");
}
}
class Dog extends Animal {
@Override
void makeSound() {
System.out.println("Woof!");
}
}
Agar tasodifan metod nomini noto‘g‘ri yozsangiz (masalan, makesound()), kompilyator quyidagiga o‘xshash xato ko‘rsatadi:
Misol
class Animal {
void makeSound() {
System.out.println("Animal sound");
}
}
class Dog extends Animal {
@Override
void makesound() { // Typo here!
System.out.println("Woof!");
}
}
public class Main {
public static void main(String[] args) {
Animal myDog = new Dog();
myDog.makeSound();
}
}
Natija:
Main.java:8: error: method does not override or implement a method from a supertype
@Override
^
1 error
@Override annotatsiyasining kuchi shunda — u sezdirmay yuz beradigan xatolarning oldini oladi.
Yuqoridagi misoldan @Override qatorini olib tashlasangiz, kompilyator sizni ogohlantirmaydi va metod hech narsani qayta aniqlamaydi. Dasturingiz baribir ishga tushishi mumkin, biroq u kutilmagan tarzda ishlashi ehtimoli bor, chunki mo‘ljallangan metod aslida hech qachon qayta aniqlanmagan bo‘ladi.
@Deprecated annotatsiyasi
@Deprecated annotatsiyasi dasturchilarni metodni ishlatmaslik haqida ogohlantiradi, chunki u kelajakda olib tashlanishi yoki almashtirilishi mumkin:
Misol
public class Main {
@Deprecated
static void oldMethod() {
System.out.println("This method is outdated.");
}
public static void main(String[] args) {
oldMethod(); // This will show a warning in most IDEs
}
}
Metod ishga tushib, xabarni chiqarsa ham, ko‘pchilik IDE yoki kompilyatorlar quyidagiga o‘xshash ogohlantirish ko‘rsatadi:
warning: [deprecation] oldMethod() in Main has been deprecated
@SuppressWarnings annotatsiyasi
@SuppressWarnings annotatsiyasi kompilyatorga "unchecked" yoki "deprecation" kabi muayyan ogohlantirishlarni e’tiborsiz qoldirishni buyuradi:
Misol
import java.util.ArrayList;
public class Main {
@SuppressWarnings("unchecked")
public static void main(String[] args) {
ArrayList cars = new ArrayList();
cars.add("Volvo");
System.out.println(cars);
}
}
Natija:
[Volvo]
ArrayList kabi xom tiplarni (raw types) tip ko‘rsatmasdan (masalan, ArrayList<String> ko‘rinishida emas) ishlatish odatda "unchecked" ogohlantirishiga sabab bo‘ladi.
@SuppressWarnings("unchecked") annotatsiyasi kompilyatorga ushbu ogohlantirishni e’tiborsiz qoldirishni buyuradi. Bu eski kod bilan ishlaganda yoki amal xavfsiz ekaniga ishonchingiz komil bo‘lganda foydali.
Biroq ogohlantirishni yashirish o‘rniga uni quyidagicha tuzatishingiz mumkin:
ArrayList<String> cars = new ArrayList<>();
Bu yondashuv tip jihatidan xavfsiz va ogohlantirishni bostirish zaruratini yo‘qotadi.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
