SORU
17 EYLÜL 2012, PAZARTESİ


Varargs parametre üzerinden potansiyel yığın kirlilik

Bu genel bir tür ile varargs kullanırken Java 7 ile oluşur anlıyorum;

Ama benim sorum

Tam Tutulma "kullanımı öbek kirleten olabilecek mi?" dediğinde ne demek

Ve

Nasıl @SafeVarargs yeni Açıklama Bu engel teşkil ediyor mu?

CEVAP
17 EYLÜL 2012, PAZARTESİ


Yığın kirlilik teknik bir terimdir. İşaret ettikleri nesne değil, bir supertype bir türü olan başvurular ifade eder.

List<A> listOfAs = new ArrayList<>();
List<B> listOfBs = (List<B>)(Object)listOfAs; // points to a list of As

Bu "açıklanamayan" ClassCastException. neden olabilir

// if the heap never gets polluted, this should never throw a CCE
B b = listOfBs.get(0); 

@SafeVarargs Bu hiç engellemez. Ancak, ispat edilebilir yığın kirletmez, derleyici kanıtlamıyorum hangi yöntem vardır. Daha önce böyle bir API arayanlar tamamen anlamsız olduğunu, ama her arama sitesinde bastırılması gerekiyordu o sinir bozucu uyarı. Şimdi API yazarı bir kez beyannamesi yerinde bastırmak.

Eğer bu yöntem gerçekten isedeğilgüvenli, kullanıcılar artık uyarılır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AmeriiK_HD

    AmeriiK_HD

    16 AĞUSTOS 2012
  • Ammine Getahun

    Ammine Getah

    21 HAZİRAN 2011
  • Dylan Brenan

    Dylan Brenan

    22 Aralık 2009