Pojem "dynamicky vytvářené generické typy" je v Javě vždy pouze větší či
menší iluze, protože generické typy jsou záležitostí compile-time,
kdežto reflection se týká runtime. Překladač totiž generické typy
překládá na raw typy, v runtime ani v binární podobě neexistuje žádná
informace o typu.

Uvedený příklad může být funkční s unchecked warningem na druhém řádku,
protože přetypováváte raw typ Object na generický typ List<String>.
(Warning by nastal i v případě deklarace Class<List> cc =
java.util.List.class;)

Celkově řečeno - přínos generických typů nastává až v kódu, který by
následoval (kde se můžete spolehlivě opřít o to, že ll obsahuje jen
Stringy). V okamžiku tvorby objektu přes reflection bude toto "slabé
místo" stále. 

Na nějakém setkání CZJUG bych měl o generics mluvit, poslal jsem na
CZJUG konferenci mail o obsahu tohoto povídání, nejspíš ho pošlu i sem.

Tomáš Záluský


> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On Behalf Of David Váňa
> Sent: Saturday, September 23, 2006 1:38 PM
> To: Java
> Subject: genericke typy dynamicky
> 
> 
> Muze mi nekdo objasnit jak je to s generickymi typy dynamicky 
> vytvarenymi?
> 
> Napr...
> Class<?> cc = loader.loadClass("java.util.List");
> List<String> ll = (List<String >)  cc.newInstance();
> 


Odpovedet emailem