Sobes.tech
Middle+

Java'da tür silme nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Tür erasure (tip silme) Java'da, tür bilgisi derleme aşamasında silindiğinde gerçekleşen bir süreçtir ve derlenmiş bayt kodu, jenerik parametreler hakkında bilgi içermez.

Ana noktalar:

  • Uyumluluk: Jeneriklerin, jenerikleri kullanmayan eski kodlarla çalışmasına olanak tanır.
  • Uygulama: Derleyici, parametreli türleri genellikle Object olan üst sınırlarıyla değiştirir ve gerekli tür dönüşümlerini ekler.
  • Kısıtlamalar:
    • Primitif türler jenerik parametre olarak kullanılamaz (örneğin, List<int>).
    • Parametreli türden bir dizi oluşturulamaz (örneğin, new List<String>[10]).
    • instanceof operatörü, parametreli türleri kontrol etmek için kullanılamaz (örneğin, if (list instanceof List<String>)).
    • Aynı imzaya sahip silinmiş metodlar ile metodlar aşırı yüklenemez.

Örnek:

// Jeneriklerle kaynak kodu
List<String> stringList = new ArrayList<>();
stringList.add("hello");
String s = stringList.get(0); // Açık tür dönüşümüne gerek yok

// Tür silme sonrası bayt kodu
List list = new ArrayList(); // List<String> yerine List kullanıldı
list.add("hello");
String s = (String)list.get(0); // Gizli dönüşüm eklenmiş

Kısıtlamalara rağmen, tür silme Java'da jeneriklerin uygulanmasında anahtar bir unsurdur ve geriye dönük uyumluluğu sağlar.