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

  • Excel Functions

    Excel Functi

    4 NİSAN 2010
  • justintimberlakeVEVO

    justintimber

    2 EYLÜL 2009
  • Motor Trend Channel

    Motor Trend

    11 Mart 2006