"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.

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
- 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.
- Kodun Təkrar İstifadəsi (Code Reusability): Eyni kod müxtəlif tipdə obyektlər üçün istifadə edilə bilər.
- 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.