Sobes.tech
Junior

Generics hansı imkanları təqdim edir?

sobes.tech Süni İntellekt

AI-dan cavab

Genetiklər (ümumi tiplər) aşağıdakı imkanları təqdim edir:

  • Növ təhlükəsizliyinin artırılması (Type Safety): Tip səhvlərini icra etməzdən əvvəl, tərtib zamanı aşkar etməyə imkan verir.
  • Tip çevirmələrinin (Type Casting) aradan qaldırılması: Kolleksiyalar və digər məlumat strukturları ilə işləyərkən açıq tip çevirmələrinə ehtiyac qalmır.
  • Kodun təkrar istifadə imkanlarının artırılması: Müxtəlif məlumat tipləri ilə işləyən ümumi siniflər, interfeyslər və metodlar yaratmağa imkan verir, bu da məntiqi təkrarlamadan qaçmağa kömək edir.
  • Performansın yaxşılaşdırılması: Java-da genetiklər tiplərin silinməsi (Type Erasure) vasitəsilə həyata keçirilir, bu isə Object və çevirmələrlə müqayisədə hər zaman birbaşa performans artımı təmin etməyə bilər, lakin bəzi dillərdə (məsələn, C#) onlar boxing/unboxing əməliyyatlarından qaçaraq daha yaxşı performans təmin edə bilər.
  • Daha oxunaqlı və dəstəklənən kod: Kodun işlədiyi məlumat tiplərini açıq şəkildə göstərir, onu daha anlaşılan edir.

Java-da istifadə nümunəsi:

// Generiksiz
/*
List list = new ArrayList();
list.add("sətir");
Integer i = (Integer) list.get(0); // İcra zamanı səhv (ClassCastException)
*/

// Generiklərlə
List<String> stringList = new ArrayList<>();
stringList.add("sətir");
// Integer i = stringList.get(0); // Kompilasiya səhvi

C# nümunəsi:

// Generiksiz
/*
ArrayList list = new ArrayList();
list.Add("sətir");
int i = (int)list[0]; // İcra zamanı səhv (InvalidCastException)
*/

// Generiklərlə
List<string> stringList = new List<string>();
stringList.Add("sətir");
// int i = stringList[0]; // Kompilasiya səhvi