"Java Generics" Nədir?

Generics, Java proqramlaşdırma dilində tiplərin daha təhlükəsiz və səmərəli idarə olunmasına kömək edir. Bu xüsusiyyət vasitəsilə yazdığımız kodlar daha etibarlı, yenidən istifadə edilə bilən və anlaşılır olur.

28 May 2024 - 02:18
 0  179
"Java Generics" Nədir?
Java Azərbaycan

Java-da Generics, kolleksiyalar (collections) və digər obyektlərin kodlaşdırılmasında istifadə olunan, tiplərin (types) parametrizə edilməsinə imkan verən bir xüsusiyyətdir. Generics, kodun daha təhlükəsiz, oxunaqlı və yenidən istifadə edilə bilən olmasını təmin edir. Generics-in əsas xüsusiyyətləri və istifadəsi haqqında daha ətraflı məlumat verək:

Generics-in Əsas Xüsusiyyətləri

  1. Tip Təhlükəsizliyi (Type Safety): Generics, səhvlərin kompilyasiya zamanı tapılmasına imkan verir, yəni yanlış tipdə obyektlərin əlavə olunmasının qarşısını alır.
  2. Kodun Təkrar İstifadəsi (Code Reusability): Eyni kod müxtəlif tipdə obyektlər üçün istifadə edilə bilər.
  3. Oxunaqlılıq (Readability): Kod daha aydın və anlaşılır olur, çünki tiplər aşkar olur.

Generics-dən İstifadə

Generics-dən əsasən kolleksiya sinifləri ilə istifadə edilir, məsələn ArrayList, HashMap, və s. Gəlin bir neçə nümunəyə baxaq:

1. Generics ilə Kolleksiyalar

Məsələn, ArrayList sinifini Generics ilə istifadə edərək, müəyyən bir tipdə obyektləri saxlayan bir siyahı yarada bilərik:

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        // Integer tiplərində obyektləri saxlayan bir ArrayList
        ArrayList numbers = new ArrayList<>();
        numbers.add(10);
        numbers.add(20);
        // numbers.add("Hello"); // Bu xəta verəcək, çünki String əlavə etmək olmaz
        
        for (Integer number : numbers) {
            System.out.println(number);
        }
    }
}

Bu misalda, ArrayList yalnız Integer tiplərində obyektləri qəbul edir.

2. Generics ilə Metodlar

Metodlarda da Generics istifadə edilə bilər:

public class Main {
    public static  void printArray(T[] array) {
        for (T element : array) {
            System.out.println(element);
        }
    }

    public static void main(String[] args) {
        Integer[] intArray = {1, 2, 3, 4, 5};
        String[] strArray = {"Hello", "World"};

        printArray(intArray); // Integer array üçün çağırış
        printArray(strArray); // String array üçün çağırış
    }
}

Bu nümunədə, printArray metodu hər hansı bir tipdə (T) massivləri çap edə bilər.

3. Generics ilə Siniflər

Siniflərdə də Generics istifadə etmək mümkündür:

public class Box {
    private T content;

    public void setContent(T content) {
        this.content = content;
    }

    public T getContent() {
        return content;
    }

    public static void main(String[] args) {
        Box stringBox = new Box<>();
        stringBox.setContent("Hello World");
        System.out.println(stringBox.getContent());

        Box intBox = new Box<>();
        intBox.setContent(123);
        System.out.println(intBox.getContent());
    }
}

Bu misalda, Box sinifi hər hansı bir tipdə (T) obyektləri saxlaya bilər.