SORU
1 ŞUBAT 2009, Pazar


Neden't Java Throwable genel alt izin vermemektedir?

*, 3* 9 baskısına göre:

It is a compile-time error if a generic class is a direct or indirect subclass of Throwable.

Bu karar olmuştur neden anlamak isterdim. Genel istisnalar nesi var?

(Bildiğim kadarıyla, jenerik sadece derleme zamanı sözdizimsel şeker ve onlar tercüme Object zaten .class dosyaları, çok etkili ilan bir genel sınıf gibi her şeyin olduğu bir Object. Eğer yanılıyorsam beni düzeltin lütfen.)

CEVAP
1 ŞUBAT 2009, Pazar


Mark dediği gibi, türleri şu durumda bir sorun olan reifiable değildir:

try {
   doSomeStuff();
} catch (SomeException<Integer> e) {
   // ignore that
} catch (SomeException<String> e) {
   crashAndBurn()
}

Her iki SomeException<Integer> SomeException<String> silinecek aynı tür bir yolu yoktur için JVM ayırt hariç örnekleri, ve bu nedenle hiçbir şekilde söyle catch engellemelisiniz yürütülür.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Awesomesauce Network

    Awesomesauce

    4 EKİM 2012
  • pain975

    pain975

    27 NİSAN 2008
  • SaMmM123

    SaMmM123

    3 Mayıs 2006