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

  • BioHunta

    BioHunta

    28 Mayıs 2006
  • Jonah Penna

    Jonah Penna

    11 EYLÜL 2005
  • Ricardo Cerqueira

    Ricardo Cerq

    28 Mayıs 2008