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(); >
