SORU
16 EYLÜL 2008, Salı


Java genel tür örnek oluşturmak mı?

Java genel bir türünde bir örnek oluşturmak mümkün mü? Cevap no Bu gördüklerime dayanarak düşünüyorum (yazın silinmesi nedeniyle), ama eğer kaçırdığım bir şey varsa: çok merak ediyorum

class SomeContainer<E>
{
    E createContents()
    {
        return what???
    }
}

EDİT: Super Type Tokens benim sorunu çözmek için kullanılabilecek çıkıyor, ama cevapların bazıları aşağıda belirtildiği gibi yansıma tabanlı bir sürü kod gerektirir.

Ian Robertson Artima Article Daha kimseye bir şey önemli ölçüde farklı geliyor olmadığını görmek için bir süreliğine bu açık bırakacağım.

CEVAP
16 EYLÜL 2008, Salı


Haklısınız. Yapamazsın "E". Ama bunu değiştirebilirsiniz

private static class SomeContainer<E>
{
    E createContents(Class<E> clazz)
    {
        return clazz.newInstance();
    }
}

Bir sancı. Ama işe yarıyor. Fabrika desende sarma biraz daha tolere edilebilir hale getirir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CMTelly

    CMTelly

    2 Mayıs 2007
  • Le Cargo !

    Le Cargo !

    24 HAZİRAN 2007
  • Tomas N

    Tomas N

    14 Kasım 2010