- Dobře tedy pro kompilátor je to jiná třída ale výsledek pro jvm je to ta
samá. na tom se snad shodneme at tu neslovičkaříme
:-)
- jinak jsem psal ze generiky pro překladač nejsou koo. ani koontra. tak jak
jste vypsal odstravec z wiki viz "Unlike arrays, generic classes are neither
covariant nor contravariant".
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 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.

List<Predek> map = (List)listPotomek; //překladačem projde i za runtime a
nejspíš bude typová kontrola pro další část kódu užitečná.
//v .net by to za runtime spadlo

Petr



Dne 20. září 2011 15:15 "Zdeněk Troníček" <[email protected]> napsal(a):

> Ladislav Thon napsal(a):
> >> - V Javě je Iterable<String> potomkem Iterable<Object> protože je to
> > v reálu ten samej objekt - pouze překladač nás může chránit tak jako máte
> > ve
> > 2 příkladě.. (to samé pro List)
> >
> > IMHO nejlepší je dívat se na parametrizované třídy jako na funkce, které
> > vytváří "normální" třídy, a vykašlat se na implementační detaily (i když
> > ty
> > detaily v Javě jsou někdy bohužel pekelně důležité).
> >
> > A i když sestoupíte na tu implementační úroveň, stejně není podstatné,
> > jestli je Iterable<String> potomkem Iterable<Object> (což technicky je,
> > pokud definujeme relaci dědičnosti jako reflexivní), ale to, jestli
> > Iterable<String> je nebo není _podtypem_ Iterable<Object>. A to rozhodně
> > není.
>
> Jenže tahle diskuze je o překladu a warningu překladače. Jinak Tvoje
> terminologie mě překvapuje, protože pro mě jsou potomek a podtyp synonyma.
>
> Z.T.
> --
> Zdenek Tronicek
> FIT CTU in Prague
>
>

Odpovedet emailem