Junior
Generics hangi imkanları sağlar?
sobes.tech yapay zeka
AI'dan gelen yanıt
Genel (oboblar) aşağıdaki imkanları sağlar:
- Tür Güvenliğinin Artırılması (Type Safety): Derleme aşamasında tür hatalarını tespit etmeye olanak tanır, çalışma zamanında değil.
- Tür Dönüşümlerinin (Type Casting) Ortadan Kaldırılması: Koleksiyonlar ve diğer veri yapılarıyla çalışırken açık tür dönüşümlerine gerek kalmaz.
- Kodun Yeniden Kullanılabilirliğinin Artırılması: Farklı veri türleriyle çalışan genel sınıflar, arayüzler ve metodlar oluşturmaya olanak tanır, böylece mantık tekrarlanmaz.
- Performans Artışı: Java'da generics, tür silme (Type Erasure) yoluyla uygulanır, bu da her zaman
Objectkullanımı ve dönüşümlerle karşılaştırıldığında doğrudan performans artışı sağlamayabilir, ancak bazı dillerde (C# gibi) boxing/unboxing işlemlerinden kaçınarak daha iyi performans sağlayabilir. - Daha okunabilir ve sürdürülebilir kod: Kodun çalıştığı veri türlerini açıkça gösterir, böylece kod daha anlaşılır hale gelir.
Java'da kullanım örneği:
// Generics olmadan
/*
List list = new ArrayList();
list.add("dize");
Integer i = (Integer) list.get(0); // Çalışma zamanında hata (ClassCastException)
*/
// Generics ile
List<String> stringList = new ArrayList<>();
stringList.add("dize");
// Integer i = stringList.get(0); // Derleme hatası
C# örneği:
// Generics olmadan
/*
ArrayList list = new ArrayList();
list.Add("dize");
int i = (int)list[0]; // Çalışma zamanında hata (InvalidCastException)
*/
// Generics ile
List<string> stringList = new List<string>();
stringList.Add("dize");
// int i = stringList[0]; // Derleme hatası