Petr Balat napsal(a):
> Nicméně myslím si že je důležitější vědět jak se generiky mají v plném
> kontextu, takže i vlastnosti jvm, proto ten komentář.
> Aby se začátečník nespletl např. při kontrole instanceof apod. kde ten
> rozdíl mezi runtime a kompilaci je potřeba znát.

Pokud v Javě použijete parametrizovaný typ za instanceof, tak Vás
překladač upozorní, že za běhu se bude testovat něco jiného.

> Pokud programátor potřebuje pracovat s reflexí tak už tato znalost je
> nutná.
>
> -ano do .net museli přidat koo. a kontra. v gener. protože to nešlo obejít
> tak jako v jave (když pomineme warning za předpokladu že programátor musí
> znát i výsledek kompilace).
> V .NETu je IList<string> a IList<object> jinej typ jak pro kompilátor tak
> i
> pro virtuální mašinu.

Opravdu museli? To nešlo řešit v C# přetypováním?

IList<String> s = ...;
IList<Object> o = (IList<Object>) s;

Dokonce by to mělo být bez warningu, protože typový parametr lze
zkontrolovat za běhu.

Z.T.
-- 
Zdenek Tronicek
FIT CTU in Prague

Odpovedet emailem