Ono je to poměrně logické, stačí se zamyslet nad touto situací:
   Round r = new BagRound();
   r.doTransition(Gender.MALE);
Z hlediska kompilátoru by bylo vše v pořádku, protože metoda
Round.doTransition bere jako parametr opravdu libovolný enum.

Každopádně na řešení takovýchto problémů již pěknou řádku let existují
generiky, které kovarianci a kontravarianci umožňují definovat.

Kamil Podlešák

2011/8/21 Libor Jelinek <[email protected]>

> Aha, pořád se je co učit a objevovat. Takže tedy zkrátka a dobře toho
> mého docílit nelze s Enumem ani kdybych se na hlavu stavěl?
>
> Škoda. Dobrá, zkusím to vymyslet celé tedy nějak jinak. Díky za radu!
>
> Libor
>
>
>
>
> 2011/8/21 Tibor Blénessy <[email protected]>:
> > Dobry den,
> >
> > problem je v tom, ze Java umoznuje covariantne iba navratove typy,
> > parametre metod su invariantne (tj. zdededa trieda moze "zuzit" iba
> > navratovy typ metody, parametre metody musia byt rovnake). Viac k teme
> > sa da najst na wiki
> >
> http://en.wikipedia.org/wiki/Covariance_and_contravariance_(computer_science)#Java
> >
> > S pozdravom
> >
> > Tibor Blenessy
> >
>

Odpovedet emailem