Java annotatsiyalar


ULASHISH

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!");   } }

O‘zingiz sinab ko‘ring »

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

O‘zingiz sinab ko‘ring »

@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   } }

O‘zingiz sinab ko‘ring »

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]

O‘zingiz sinab ko‘ring »

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!