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ə
Objectvə ç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