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

  • GoldgenieOfficial

    GoldgenieOff

    23 Temmuz 2009
  • Google Developers

    Google Devel

    23 AĞUSTOS 2007
  • Blu animations and other videos

    Blu animatio

    15 HAZİRAN 2007