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

  • Android Police

    Android Poli

    21 NİSAN 2010
  • celebrateubuntu

    celebrateubu

    23 Mayıs 2011
  • DeAdPiXel6667

    DeAdPiXel666

    2 Ocak 2010