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 > > >
