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

  • fouseyTUBE

    fouseyTUBE

    21 Mart 2011
  • Gan Eden Productions

    Gan Eden Pro

    11 HAZİRAN 2011
  • Whizzpopping

    Whizzpopping

    10 Kasım 2005