Dne 14.4.2011 08:10, Oto Buchta napsal(a):
Dne 14. dubna 2011 7:10 Martin Beránek <[email protected]
<mailto:[email protected]>> napsal(a):

    Tak sem na to asi došel, viz příklad v příloze. Ono to totiž takovou
    mapu zadefinovat pomocí generik vlastně nejde... nebo jde, ale její
    použití pak bude silně limitující.


Opět nic neočekávaného. Když si vytvořím mapu,
kde klíč je potomek, nemůžu přeci jako klíč použít předka.
To je princip generik,

Problém ale je, že jako klíč můžu použít jedině null, což je právě to limitující chování. Pokud se bavíme o metodě "universlReadFromMap" z mého příklad tak jediné co se přeloží je:

m.get(null);


Kdyby tedy Map,List,Set byly nadefinovány natvrdo s generiky, nešlo by psát _některé_ univerzální metody pro práci s nimi.

> Mám-li to dohnat do umělého extrému (nebudu testovat výsledek na
> null), tak jestli odchytnu NPE nebo ClassCast je vcelku jedno :-)

Tady jsem nepochopil co tím je myšleno. Prostě zadefinovat parametr get metody pomoci generika nam nic navic neprinasi (stav objektu se nijak pokazit nemuze) - pouze limituje při vytváření univerzálních algoritmů.

--
Martin Beránek
ICZ a.s., Pobočka Brno
http://www.i.cz

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Odpovedet emailem