Sobes.tech
Middle

Generics ne imkanlar sağlar?

sobes.tech yapay zeka

AI'dan gelen yanıt

Genel (generikler) aşağıdaki avantajları sağlar:

  • Kodun yeniden kullanımı: Farklı türlerdeki nesnelerle çalışabilen sınıflar, arayüzler ve metodlar oluşturma, tür güvenliğini kaybetmeden.
  • Derleme zamanında tür güvenliği: Derleyici, tür kullanımının doğruluğunu kontrol edebilir ve tür dönüşümleriyle ilgili çalışma zamanı hatalarını önleyebilir.
  • Kod okunabilirliğinin artırılması: Metod imzalarında ve sınıf bildirimlerinde açıkça belirtilen türler, kodun daha anlaşılır olmasını sağlar.
  • Performans artışı (bazı dillerde): Türlerin silinmesiyle (örneğin Java) uygulanan dillerde, bu, çalışma zamanında tür dönüşümlerine gerek kalmadan sağlanır. Türlerin monomorfizasyonla (örneğin C++ şablonları) uygulandığı dillerde, bu kodun şişmesine neden olabilir, ancak potansiyel olarak dinamik çağrıları ortadan kaldırarak daha hızlı çalışmasını sağlar.
  • Koleksiyonlarla uyumluluk: Koleksiyonlar üzerinde çalışmayı kolaylaştırır, içerdikleri öğelerin türünü belirtmeye olanak tanır.

Java örneği:

// Generics olmadan
List list = new ArrayList();
list.add("string");
// Çekme sırasında tür dönüşümü gerekir, olası ClassCastException
String s = (String) list.get(0);

// Generics ile
List<String> stringList = new ArrayList<>();
stringList.add("string");
// Tür dönüşümüne gerek yok, tür güvenliği garanti edilir
String s2 = stringList.get(0);
// Uyumsuz tür eklemeye çalışırken derleme hatası
// stringList.add(123);

C# örneği:

// Generics olmadan
ArrayList list = new ArrayList();
list.Add("string");
// Çekme sırasında tür dönüşümü gerekir
string s = (string)list[0];

// Generics ile
List<string> stringList = new List<string>();
stringList.Add("string");
// Tür dönüşümüne gerek yok
string s2 = stringList[0];
// Derleme hatası
// stringList.Add(123);