Dobrý den!
Nedaří se mi implementovat metodu z abstraktní třídy s argumentem typu
výčet. Překlad skončí chybou "chyba "method does not override or
implement a method from a supertype".
Mám docela jednochou abstraktní třídu předka:
public abstract class Round {
abstract public Enum[] getPossibleTransitions();
abstract public boolean doTransition(Enum transition);
}
Důvod uvedení Enum, je že každý potomek bude vracet a používat až v
něm známé a definované výčtové typy.
Příklad potomka, který by měl přepisovat tyto dvě metody a u druhého
@Override u metody doTransition(Enum transition) dostávám
nepochopitelnou chybu "method does not override or implement a method
from a supertype"...
public class BagRound extends Round {
@Override // okay
public BagRound.Transition[] getPossibleTransitions() {
// něco, zatím:
throw new UnsupportedOperationException("Not supported yet.");
}
@Override // !!! chyba "method does not override or
implement a
method from a supertype" !!!
public boolean doTransition(BagRound.Transition transition) {
// něco, zatím:
throw new UnsupportedOperationException("Not supported yet.");
}
public enum Transition {
RECEIVE_AW,
SEND_BAG,
CONFIRM_BAG,
MARK_INVOICED,
CANCEL
}
}
Zvláštní, že u první metoda přepsat jde... Buď je to chyba nebo má
neznalost existence nějakého omezení enumu. Používám Sun JDK 6.
Díky za nápady
Libor