Sobes.tech
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 Object kullanı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ı