SORU
30 Kasım 2013, CUMARTESİ


Neden bir Çift Tamsayılar yansıtma kullanarak bir Listeye eklenebilir

Neden bu kod, herhangi bir istisna olmadan çalışır mı?

public static void main(String args[]) {
    List<Integer> a = new ArrayList<Integer>();
    try {

        a.getClass()
            .getMethod("add", Object.class)
            .invoke(a, new Double(0.55555));

    } catch (Exception e) {
        e.printStackTrace();
    } 
    System.out.println(a.get(0));
}

CEVAP
30 Kasım 2013, CUMARTESİ


Jenerik derleme bir şey vardır. Çalışma zamanında, düzenli herhangi bir ek onay olmadan ArrayList,, kullanılır. Yansıma listesine öğeler eklemek için kullanarak güvenlik denetimleri atlayarak olduğun hiçbir şey senin içinde List<Integer> depolanmasını Double engelleyebilirsiniz. Eğer sen yaptıysan gibi

List<Integer> list = new ArrayList<Integer>();
List rawList = list;
rawList.add(new Double(2.5));

Eğer listenizde çalışma zamanında tür kontrolleri uygulamak istiyorsanız, o zaman kullanın

List<Integer> checkedList = Collections.checkedList(list, Integer.class);

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Epic Tutorials for iPhone, iPad and iOS

    Epic Tutoria

    18 EYLÜL 2011
  • MrExcite96

    MrExcite96

    17 ŞUBAT 2011
  • Stevie

    Stevie

    2 Mayıs 2010